Lines Matching refs:CIE
255 applies for initial lengths for CIE/FDEs and probably in zillions
1718 > If a CIE does not have an "augmentation string" (typically "zR") then
1721 > is specified by the CIE itself, which works fine with GCC compiled code
2024 /* Read-only fields (set by the CIE) */
3705 /* This gives the CIE an identity to which FDEs will refer. */
3719 CIE;
3721 static void init_CIE ( CIE* cie )
3723 cie->offset = 0;
3724 cie->code_a_f = 0;
3725 cie->data_a_f = 0;
3726 cie->ra_reg = 0;
3727 cie->address_encoding = 0;
3728 cie->instrs = DiCursor_INVALID;
3729 cie->ilen = 0;
3730 cie->saw_z_augmentation = False;
3734 static CIE the_CIEs[N_CIEs];
3791 of which is either a FDE (usually) or a CIE (occasionally).
3792 Each FDE has a field indicating which CIE is the one pertaining
3799 previously-seen CIE.
3817 /* Ok, we must be looking at the start of a new CIE or FDE.
3827 VG_(printf)("cie/fde.length = %lld\n", ciefde_len);
3849 /* Now get the CIE ID, whose size depends on the DWARF 32 vs
3860 VG_(printf)("cie.pointer = %lld\n", cie_pointer);
3863 we've got a CIE; else it's an FDE. */
3871 /* --------- CIE --------- */
3873 VG_(printf)("------ new CIE (#%d of 0 .. %d) ------\n",
3876 /* Allocate a new CIE record. */
3893 VG_(printf)("%08lx %08lx %08lx CIE\n",
3900 VG_(printf)("cie.version = %d\n", (Int)cie_version);
3904 how = "unexpected CIE version (not 1 nor 3 nor 4)";
3914 VG_(printf)("cie.augment = \"%s\"\n", str);
3940 VG_(printf)("cie.code_af = %d\n",
3948 VG_(printf)("cie.data_af = %d\n",
3960 VG_(printf)("cie.ra_reg = %d\n",
3968 how = "cie.ra_reg has implausible value";
4014 how = "unhandled cie.augmentation";
4025 VG_(printf)("cie.encoding = 0x%x\n",
4032 //VG_(printf)("cie.instrs = %p\n", the_CIEs[this_CIE].instrs);
4033 VG_(printf)("cie.ilen = %d\n", the_CIEs[this_CIE].ilen);
4038 how = "implausible # cie initial insns";
4044 /* Show the CIE's instructions (the preamble for each FDE
4045 that uses this CIE). */
4068 Int cie;
4078 /* Find the relevant CIE. The CIE we want is located
4089 for (cie = 0; cie < n_CIEs; cie++) {
4091 look_for, the_CIEs[cie].offset );
4092 if (the_CIEs[cie].offset == look_for)
4095 vg_assert(cie >= 0 && cie <= n_CIEs);
4096 if (cie == n_CIEs) {
4097 how = "FDE refers to not-findable CIE";
4101 adi.encoding = the_CIEs[cie].address_encoding;
4109 adi.encoding = the_CIEs[cie].address_encoding & 0xf;
4135 VG_(printf)("%08lx %08lx %08lx FDE cie=%08lx pc=%08lx..%08lx\n",
4143 if (the_CIEs[cie].saw_z_augmentation) {
4201 adi.encoding = the_CIEs[cie].address_encoding;
4208 the_CIEs[cie].code_a_f,
4209 the_CIEs[cie].data_a_f );
4212 ctx.code_a_f = the_CIEs[cie].code_a_f;
4213 ctx.data_a_f = the_CIEs[cie].data_a_f;
4215 ctx.ra_reg = the_CIEs[cie].ra_reg;
4221 /* Run the CIE's instructions. Ugly hack: if
4224 at the time the CIE was first encountered. Note, not
4231 di, False, &ctx, the_CIEs[cie].instrs,
4232 the_CIEs[cie].ilen, 0, NULL, &adi
4237 the state created by running the CIE preamble