Home | History | Annotate | Download | only in coregrind

Lines Matching defs:fp

57    thread's IP SP, FP if that's meaningful, and LR if that's
106 // unwinding with fp chain is ok:
110 // Unwind with FP is not ok, must use CF unwind:
115 /* An unwind done by following the fp chain technique can be incorrect
121 So, by default, the unwinding will be done using the fp chain.
125 FPUNWIND (0): there is CF info, and it gives the same result as fp unwind.
127 with the fast fp chain, without further CF checking
128 NOINFO (1): there is no CF info (so, fp unwind is the only do-able thing)
132 Of course, if each fp unwind implies a check done with a CF unwind,
176 UInt Ck; // unwind fp invalid+store FPUNWIND
219 when FP is not a reasonable stack location. */
230 "fp_max=0x%08lx ip=0x%08lx fp=0x%08lx\n",
301 /* Try to derive a new (ip,sp,fp) triple from the current set. */
306 be done (i.e. fp unwind check failed when we did the first
310 FP unwind result to insert xip in the cache with the correct
321 previously found CFI info, and failed the fp unwind
324 cleanup the cache entry and fallover to fp unwind (this
344 indicate fp unwind is ok. This must be done if the cache indicates
353 /* fp looks sane, so use it. */
363 // Check if we obtain the same result with fp unwind.
364 // If same result, then mark xip as fp unwindable
412 // fp unwind has failed.
414 // we mark in the cache that the fp unwind cannot be done, and that
420 if (debug) VG_(printf)(" cache CFUNWIND as fp failed\n");
427 // We failed the cfi unwind and/or the fp unwind.
445 /* fp is %ebp. sp is %esp. ip is %eip. */
512 when FP is not a reasonable stack location. */
523 "fp_max=0x%lx ip=0x%lx fp=0x%lx\n",
552 /* fp is %rbp. sp is %rsp. ip is %rip. */
599 /* Try to derive a new (ip,sp,fp) triple from the current set. */
616 /* If VG_(use_CF_info) fails, it won't modify ip/sp/fp, so
625 fact that we are prodding at & ((UWord*)fp)[1] and so need to
629 /* fp looks sane, so use it. */
714 Addr fp = sp;
724 when FP is not a reasonable stack location. */
735 "fp_max=0x%lx ip=0x%lx fp=0x%lx\n",
736 max_n_ips, fp_min, fp_max_orig, fp_max, ip, fp);
745 if (fps) fps[0] = fp;
750 /* fp is %r1. ip is %cia. Note, ppc uses r1 as both the stack and
795 if (sps) sps[0] = fp; /* NB. not sp */
796 if (fps) fps[0] = fp;
800 if (fp_min <= fp && fp < fp_max-VG_WORDSIZE+1) {
802 /* initial FP is sane; keep going */
803 fp = (((UWord*)fp)[0]);
819 /* Try to derive a new (ip,fp) pair from the current set. */
821 if (fp_min <= fp && fp <= fp_max - lr_offset * sizeof(UWord)) {
822 /* fp looks sane, so use it. */
827 ip = (((UWord*)fp)[lr_offset]);
853 if (sps) sps[i] = fp; /* NB. not sp */
854 if (fps) fps[i] = fp;
855 fp = (((UWord*)fp)[0]);
989 when FP is not a reasonable stack location. */
1133 when FP is not a reasonable stack location. */
1224 uregs.fp = startRegs->misc.S390X.r_fp;
1233 "fp_max=0x%lx IA=0x%lx SP=0x%lx FP=0x%lx\n",
1235 uregs.ia, uregs.sp,uregs.fp);
1240 if (fps) fps[0] = uregs.fp;
1252 if (fps) fps[i] = uregs.fp;
1268 uregs.fp = fps[0];
1309 uregs.fp = startRegs->misc.MIPS32.r30;
1312 uregs.fp = startRegs->misc.MIPS64.r30;
1318 when FP is not a reasonable stack location. */
1326 "fp_max=0x%lx pc=0x%lx sp=0x%lx fp=0x%lx\n",
1328 uregs.pc, uregs.sp, uregs.fp);
1331 if (fps) fps[0] = uregs.fp;
1352 if (fps) fps[i] = uregs.fp;
1407 uregs.fp = fps[0];
1423 uregs.fp = fps[0];
1463 uregs.fp = startRegs->misc.TILEGX.r52;
1472 "fp_max=0x%lx pc=0x%lx sp=0x%lx fp=0x%lx\n",
1474 uregs.pc, uregs.sp, uregs.fp);
1477 if (fps) fps[0] = uregs.fp;
1493 VG_(printf)("USING CFI: pc: 0x%lx, sp: 0x%lx, fp: 0x%lx, lr: 0x%lx\n",
1494 uregs.pc, uregs.sp, uregs.fp, uregs.lr);
1498 if (fps) fps[i] = uregs.fp;
1617 uregs.fp = fps[0];
1759 NULL/*array to dump FP values in*/,