Lines Matching defs:cie

30 struct cie
217 const struct cie *c1 = e1;
218 const struct cie *c2 = e2;
248 const struct cie *c = e;
253 cie_compute_hash (struct cie *c)
281 if (entry->cie)
297 if (entry->cie)
456 struct cie cie;
462 struct cie *cie;
593 this_inf->cie = 1;
604 cie = &ecies[ecie_count].cie;
607 cie->length = hdr_length;
609 REQUIRE (read_byte (&buf, end, &cie->version));
612 REQUIRE (cie->version == 1 || cie->version == 3);
613 REQUIRE (strlen ((char *) buf) < sizeof (cie->augmentation));
615 strcpy (cie->augmentation, (char *) buf);
627 REQUIRE (read_uleb128 (&buf, end, &cie->code_align));
628 REQUIRE (read_sleb128 (&buf, end, &cie->data_align));
629 if (cie->version == 1)
632 cie->ra_column = *buf++;
635 REQUIRE (read_uleb128 (&buf, end, &cie->ra_column));
637 cie->lsda_encoding = DW_EH_PE_omit;
638 cie->fde_encoding = DW_EH_PE_omit;
639 cie->per_encoding = DW_EH_PE_omit;
640 aug = cie->augmentation;
646 REQUIRE (read_uleb128 (&buf, end, &cie->augmentation_size));
654 REQUIRE (read_byte (&buf, end, &cie->lsda_encoding));
656 REQUIRE (get_DW_EH_PE_width (cie->lsda_encoding, ptr_size));
659 REQUIRE (read_byte (&buf, end, &cie->fde_encoding));
661 REQUIRE (get_DW_EH_PE_width (cie->fde_encoding, ptr_size));
669 REQUIRE (read_byte (&buf, end, &cie->per_encoding));
670 per_width = get_DW_EH_PE_width (cie->per_encoding,
673 if ((cie->per_encoding & 0xf0) == DW_EH_PE_aligned)
704 cie->personality.h = h;
724 cie->personality.val = val;
725 cie->local_personality = 1;
736 REQUIRE (cie->local_personality || cie->personality.h);
752 if ((cie->fde_encoding & 0xf0) == DW_EH_PE_absptr)
753 cie->make_relative = 1;
757 else if (cie->fde_encoding == DW_EH_PE_omit
758 && (cie->per_encoding & 0xf0) != DW_EH_PE_aligned)
760 if (*cie->augmentation == 0)
763 cie->make_relative = 1;
771 && (cie->lsda_encoding & 0xf0) == DW_EH_PE_absptr)
772 cie->make_lsda_relative = 1;
776 if (cie->fde_encoding == DW_EH_PE_omit)
777 cie->fde_encoding = DW_EH_PE_absptr;
780 if (initial_insn_length <= sizeof (cie->initial_instructions))
782 cie->initial_insn_length = initial_insn_length;
783 memcpy (cie->initial_instructions, buf, initial_insn_length);
800 cie = &ecie->cie;
812 && (((cie->fde_encoding & 0xf0) == DW_EH_PE_absptr
813 && cie->make_relative == 0)
814 || (cie->fde_encoding & 0xf0) == DW_EH_PE_aligned))
832 length = get_DW_EH_PE_width (cie->fde_encoding, ptr_size);
836 if (cie->augmentation[0] == 'z')
844 if (cie->lsda_encoding != DW_EH_PE_omit)
849 if (cie->augmentation[0] != 'z')
864 length = get_DW_EH_PE_width (cie->fde_encoding, ptr_size);
872 || (set_loc_count && this_inf->cie))
875 if (insns_end != end && this_inf->cie)
877 cie->initial_insn_length -= end - insns_end;
878 cie->length -= end - insns_end;
881 && ((cie->fde_encoding & 0xf0) == DW_EH_PE_pcrel
882 || cie->make_relative))
901 this_inf->fde_encoding = cie->fde_encoding;
902 this_inf->lsda_encoding = cie->lsda_encoding;
919 ecie->cie.output_sec = sec->output_section;
920 ecie->cie.cie_inf = sec_info->entry + ecie->entry;
921 cie_compute_hash (&ecie->cie);
924 void **loc = htab_find_slot_with_hash (hdr_info->cies, &ecie->cie,
925 ecie->cie.hash, INSERT);
931 ecie->cie.cie_inf = ((struct cie *) *loc)->cie_inf;
935 *loc = malloc (sizeof (struct cie));
939 memcpy (*loc, &ecie->cie, sizeof (struct cie));
942 ecie->cie.cie_inf->make_relative = ecie->cie.make_relative;
943 ecie->cie.cie_inf->make_lsda_relative = ecie->cie.make_lsda_relative;
944 ecie->cie.cie_inf->per_encoding_relative
945 = (ecie->cie.per_encoding & 0x70) == DW_EH_PE_pcrel;
953 if (!ent->cie)
956 ent->cie_inf = ecie->cie.cie_inf;
1116 if (!sec_info->entry[mid].cie
1123 if (!sec_info->entry[mid].cie
1137 && (sec_info->entry[mid].cie
1266 if (ent->cie)