Lines Matching refs:uregs
190 D3UnwindRegs uregs; in VG_() local
191 uregs.xip = (Addr)startRegs->r_pc; in VG_()
192 uregs.xsp = (Addr)startRegs->r_sp; in VG_()
193 uregs.xbp = startRegs->misc.X86.r_ebp; in VG_()
194 Addr fp_min = uregs.xsp; in VG_()
211 uregs.xip, uregs.xbp); in VG_()
222 if (sps) sps[0] = uregs.xsp; in VG_()
223 if (fps) fps[0] = uregs.xbp; in VG_()
224 ips[0] = uregs.xip; in VG_()
250 if (sps) sps[0] = uregs.xsp; in VG_()
251 if (fps) fps[0] = uregs.xbp; in VG_()
252 ips[0] = uregs.xip; in VG_()
261 UWord hash = uregs.xip % N_FP_CF_VERIF; in VG_()
262 Addr xip_verif = uregs.xip ^ fp_CF_verif_cache [hash]; in VG_()
266 uregs.xip, xip_verif, in VG_()
267 uregs.xbp, uregs.xsp); in VG_()
285 if ( VG_(use_CF_info)( &uregs, fp_min, fp_max ) ) { in VG_()
302 fpverif_uregs = uregs; in VG_()
303 xip_verified = uregs.xip; in VG_()
305 fp_CF_verif_cache [hash] = uregs.xip ^ NOINFO; in VG_()
319 if (fp_min <= uregs.xbp && in VG_()
320 uregs.xbp <= fp_max - 1 * sizeof(UWord)/*see comment below*/) in VG_()
323 uregs.xip = (((UWord*)uregs.xbp)[1]); in VG_()
330 if (0 == uregs.xip || 1 == uregs.xip) { in VG_()
334 if (uregs.xip == fpverif_uregs.xip) { in VG_()
342 uregs = fpverif_uregs; in VG_()
354 uregs.xsp = uregs.xbp + sizeof(Addr) /*saved %ebp*/ in VG_()
356 uregs.xbp = (((UWord*)uregs.xbp)[0]); in VG_()
358 if (uregs.xip == fpverif_uregs.xip in VG_()
359 && uregs.xsp == fpverif_uregs.xsp in VG_()
360 && uregs.xbp == fpverif_uregs.xbp) { in VG_()
368 if (do_stats && uregs.xip != fpverif_uregs.xip) stats.xi++; in VG_()
369 if (do_stats && uregs.xsp != fpverif_uregs.xsp) stats.xs++; in VG_()
370 if (do_stats && uregs.xbp != fpverif_uregs.xbp) stats.xb++; in VG_()
371 uregs = fpverif_uregs; in VG_()
390 uregs = fpverif_uregs; in VG_()
401 if ( VG_(use_FPO_info)( &uregs.xip, &uregs.xsp, &uregs.xbp, in VG_()
414 if (0 == uregs.xip || 1 == uregs.xip) break; in VG_()
415 if (sps) sps[i] = uregs.xsp; in VG_()
416 if (fps) fps[i] = uregs.xbp; in VG_()
417 ips[i++] = uregs.xip - 1; in VG_()
421 uregs.xip = uregs.xip - 1; in VG_()
471 D3UnwindRegs uregs; in VG_() local
472 uregs.xip = startRegs->r_pc; in VG_()
473 uregs.xsp = startRegs->r_sp; in VG_()
474 uregs.xbp = startRegs->misc.AMD64.r_rbp; in VG_()
475 Addr fp_min = uregs.xsp; in VG_()
492 uregs.xip, uregs.xbp); in VG_()
503 if (sps) sps[0] = uregs.xsp; in VG_()
504 if (fps) fps[0] = uregs.xbp; in VG_()
505 ips[0] = uregs.xip; in VG_()
512 ips[0] = uregs.xip; in VG_()
513 if (sps) sps[0] = uregs.xsp; in VG_()
514 if (fps) fps[0] = uregs.xbp; in VG_()
527 ips[i] = *(Addr *)uregs.xsp - 1; in VG_()
528 if (sps) sps[i] = uregs.xsp; in VG_()
529 if (fps) fps[i] = uregs.xbp; in VG_()
558 if ( VG_(use_CF_info)( &uregs, fp_min, fp_max ) ) { in VG_()
559 if (0 == uregs.xip || 1 == uregs.xip) break; in VG_()
560 if (sps) sps[i] = uregs.xsp; in VG_()
561 if (fps) fps[i] = uregs.xbp; in VG_()
562 ips[i++] = uregs.xip - 1; /* -1: refer to calling insn, not the RA */ in VG_()
565 uregs.xip = uregs.xip - 1; /* as per comment at the head of this loop */ in VG_()
582 if (fp_min <= uregs.xbp && uregs.xbp <= fp_max - 1 * sizeof(UWord)) { in VG_()
584 uregs.xip = (((UWord*)uregs.xbp)[1]); in VG_()
585 if (0 == uregs.xip || 1 == uregs.xip) break; in VG_()
586 uregs.xsp = uregs.xbp + sizeof(Addr) /*saved %rbp*/ in VG_()
588 uregs.xbp = (((UWord*)uregs.xbp)[0]); in VG_()
589 if (sps) sps[i] = uregs.xsp; in VG_()
590 if (fps) fps[i] = uregs.xbp; in VG_()
591 ips[i++] = uregs.xip - 1; /* -1: refer to calling insn, not the RA */ in VG_()
594 uregs.xip = uregs.xip - 1; /* as per comment at the head of this loop */ in VG_()
611 if (fp_min <= uregs.xsp && uregs.xsp < fp_max) { in VG_()
612 uregs.xip = ((UWord*)uregs.xsp)[0]; in VG_()
613 if (0 == uregs.xip || 1 == uregs.xip) break; in VG_()
614 if (sps) sps[i] = uregs.xsp; in VG_()
615 if (fps) fps[i] = uregs.xbp; in VG_()
616 ips[i++] = uregs.xip == 0 in VG_()
619 : uregs.xip - 1; in VG_()
623 uregs.xip = uregs.xip - 1; /* as per comment at the head of this loop */ in VG_()
624 uregs.xsp += 8; in VG_()
931 D3UnwindRegs uregs; in VG_() local
932 uregs.r15 = startRegs->r_pc & 0xFFFFFFFE; in VG_()
933 uregs.r14 = startRegs->misc.ARM.r14; in VG_()
934 uregs.r13 = startRegs->r_sp; in VG_()
935 uregs.r12 = startRegs->misc.ARM.r12; in VG_()
936 uregs.r11 = startRegs->misc.ARM.r11; in VG_()
937 uregs.r7 = startRegs->misc.ARM.r7; in VG_()
938 Addr fp_min = uregs.r13; in VG_()
955 uregs.r15, uregs.r13); in VG_()
965 if (sps) sps[0] = uregs.r13; in VG_()
967 ips[0] = uregs.r15; in VG_()
973 if (sps) sps[0] = uregs.r13; in VG_()
975 ips[0] = uregs.r15; in VG_()
985 i, uregs.r15, uregs.r13); in VG_()
991 if (VG_(use_CF_info)( &uregs, fp_min, fp_max )) { in VG_()
992 if (sps) sps[i] = uregs.r13; in VG_()
994 ips[i++] = (uregs.r15 & 0xFFFFFFFE) - 1; in VG_()
997 uregs.r15, uregs.r13); in VG_()
998 uregs.r15 = (uregs.r15 & 0xFFFFFFFE) - 1; in VG_()
1014 Addr lr = uregs.r14; in VG_()
1015 Addr sp = uregs.r13 & ~3; in VG_()
1016 Addr pc = uregs.r15; in VG_()
1031 while (in_same_page(sp, uregs.r13)) { in VG_()
1077 D3UnwindRegs uregs; in VG_() local
1078 uregs.pc = startRegs->r_pc; in VG_()
1079 uregs.sp = startRegs->r_sp; in VG_()
1080 uregs.x30 = startRegs->misc.ARM64.x30; in VG_()
1081 uregs.x29 = startRegs->misc.ARM64.x29; in VG_()
1082 Addr fp_min = uregs.sp; in VG_()
1099 uregs.pc, uregs.sp); in VG_()
1109 if (sps) sps[0] = uregs.sp; in VG_()
1110 if (fps) fps[0] = uregs.x29; in VG_()
1111 ips[0] = uregs.pc; in VG_()
1117 if (sps) sps[0] = uregs.sp; in VG_()
1118 if (fps) fps[0] = uregs.x29; in VG_()
1119 ips[0] = uregs.pc; in VG_()
1126 i, uregs.pc, uregs.sp); in VG_()
1132 if (VG_(use_CF_info)( &uregs, fp_min, fp_max )) { in VG_()
1133 if (sps) sps[i] = uregs.sp; in VG_()
1134 if (fps) fps[i] = uregs.x29; in VG_()
1135 ips[i++] = uregs.pc - 1; in VG_()
1138 uregs.pc, uregs.sp); in VG_()
1139 uregs.pc = uregs.pc - 1; in VG_()
1173 D3UnwindRegs uregs; in VG_() local
1174 uregs.ia = startRegs->r_pc; in VG_()
1175 uregs.sp = startRegs->r_sp; in VG_()
1176 Addr fp_min = uregs.sp; in VG_()
1177 uregs.fp = startRegs->misc.S390X.r_fp; in VG_()
1178 uregs.lr = startRegs->misc.S390X.r_lr; in VG_()
1188 uregs.ia, uregs.sp,uregs.fp); in VG_()
1191 ips[0] = uregs.ia; in VG_()
1192 if (sps) sps[0] = uregs.sp; in VG_()
1193 if (fps) fps[0] = uregs.fp; in VG_()
1203 if (VG_(use_CF_info)( &uregs, fp_min, fp_max )) { in VG_()
1204 if (sps) sps[i] = uregs.sp; in VG_()
1205 if (fps) fps[i] = uregs.fp; in VG_()
1206 ips[i++] = uregs.ia - 1; in VG_()
1207 uregs.ia = uregs.ia - 1; in VG_()
1217 uregs.sp = sps[0]; in VG_()
1221 uregs.fp = fps[0]; in VG_()
1223 uregs.ia = uregs.lr - 1; in VG_()
1224 ips[i++] = uregs.lr - 1; in VG_()
1256 D3UnwindRegs uregs; in VG_() local
1257 uregs.pc = startRegs->r_pc; in VG_()
1258 uregs.sp = startRegs->r_sp; in VG_()
1259 Addr fp_min = uregs.sp; in VG_()
1262 uregs.fp = startRegs->misc.MIPS32.r30; in VG_()
1263 uregs.ra = startRegs->misc.MIPS32.r31; in VG_()
1265 uregs.fp = startRegs->misc.MIPS64.r30; in VG_()
1266 uregs.ra = startRegs->misc.MIPS64.r31; in VG_()
1281 uregs.pc, uregs.sp, uregs.fp); in VG_()
1283 if (sps) sps[0] = uregs.sp; in VG_()
1284 if (fps) fps[0] = uregs.fp; in VG_()
1285 ips[0] = uregs.pc; in VG_()
1293 i, uregs.pc, uregs.sp, uregs.ra); in VG_()
1298 D3UnwindRegs uregs_copy = uregs; in VG_()
1299 if (VG_(use_CF_info)( &uregs, fp_min, fp_max )) { in VG_()
1302 uregs.pc, uregs.sp, uregs.ra); in VG_()
1303 if (0 != uregs.pc && 1 != uregs.pc) { in VG_()
1304 if (sps) sps[i] = uregs.sp; in VG_()
1305 if (fps) fps[i] = uregs.fp; in VG_()
1306 ips[i++] = uregs.pc - 4; in VG_()
1307 uregs.pc = uregs.pc - 4; in VG_()
1311 uregs = uregs_copy; in VG_()
1317 if (VG_(get_inst_offset_in_function)(uregs.pc, &offset)) { in VG_()
1318 Addr start_pc = uregs.pc - offset; in VG_()
1319 Addr limit_pc = uregs.pc; in VG_()
1351 if (0 == uregs.pc || 1 == uregs.pc) break; in VG_()
1352 if (uregs.pc == uregs.ra - 8) break; in VG_()
1354 sps[i] = uregs.sp + frame_offset; in VG_()
1356 uregs.sp = uregs.sp + frame_offset; in VG_()
1360 uregs.fp = fps[0]; in VG_()
1362 if (0 == uregs.ra || 1 == uregs.ra) break; in VG_()
1363 uregs.pc = uregs.ra - 8; in VG_()
1364 ips[i++] = uregs.ra - 8; in VG_()
1372 uregs.sp = sps[0]; in VG_()
1376 uregs.fp = fps[0]; in VG_()
1378 if (0 == uregs.ra || 1 == uregs.ra) break; in VG_()
1379 uregs.pc = uregs.ra - 8; in VG_()
1380 ips[i++] = uregs.ra - 8; in VG_()
1411 D3UnwindRegs uregs; in VG_() local
1412 uregs.pc = startRegs->r_pc; in VG_()
1413 uregs.sp = startRegs->r_sp; in VG_()
1414 Addr fp_min = uregs.sp; in VG_()
1416 uregs.fp = startRegs->misc.TILEGX.r52; in VG_()
1417 uregs.lr = startRegs->misc.TILEGX.r55; in VG_()
1427 uregs.pc, uregs.sp, uregs.fp); in VG_()
1429 if (sps) sps[0] = uregs.sp; in VG_()
1430 if (fps) fps[0] = uregs.fp; in VG_()
1431 ips[0] = uregs.pc; in VG_()
1438 i, uregs.pc, uregs.sp, uregs.lr); in VG_()
1443 D3UnwindRegs uregs_copy = uregs; in VG_()
1444 if (VG_(use_CF_info)( &uregs, fp_min, fp_max )) { in VG_()
1447 uregs.pc, uregs.sp, uregs.fp, uregs.lr); in VG_()
1448 if (0 != uregs.pc && 1 != uregs.pc && in VG_()
1449 (uregs.pc < fp_min || uregs.pc > fp_max)) { in VG_()
1450 if (sps) sps[i] = uregs.sp; in VG_()
1451 if (fps) fps[i] = uregs.fp; in VG_()
1452 if (uregs.pc != uregs_copy.pc && uregs.sp != uregs_copy.sp) in VG_()
1453 ips[i++] = uregs.pc - 8; in VG_()
1454 uregs.pc = uregs.pc - 8; in VG_()
1458 uregs = uregs_copy; in VG_()
1463 if (VG_(get_inst_offset_in_function)(uregs.pc, &offset)) { in VG_()
1464 Addr start_pc = uregs.pc; in VG_()
1465 Addr limit_pc = uregs.pc - offset; in VG_()
1527 if (0 == uregs.pc || 1 == uregs.pc) break; in VG_()
1530 uregs.sp = uregs.sp + (ULong)(-frame_offset); in VG_()
1534 i, uregs.pc, uregs.sp, uregs.lr); in VG_()
1536 if (uregs.pc == uregs.lr - 8 || in VG_()
1537 uregs.lr - 8 >= fp_min && uregs.lr - 8 <= fp_max) { in VG_()
1539 VG_(printf)("new lr = 0x%lx\n", *(ULong*)uregs.sp); in VG_()
1540 uregs.lr = *(ULong*)uregs.sp; in VG_()
1543 uregs.pc = uregs.lr - 8; in VG_()
1545 if (uregs.lr != 0) { in VG_()
1548 sps[i] = uregs.sp; in VG_()
1553 ips[i++] = uregs.pc; in VG_()
1566 uregs.sp = sps[0]; in VG_()
1570 uregs.fp = fps[0]; in VG_()
1572 if (0 == uregs.lr || 1 == uregs.lr) in VG_()
1575 uregs.pc = uregs.lr - 8; in VG_()
1576 ips[i++] = uregs.lr - 8; in VG_()