static void find_offset(FastShad *greg, FastShad *gspec, uint64_t offset, uint64_t labels_per_reg, FastShad **dest, uint64_t *addr) { #ifdef TARGET_PPC if (cpu_contains(gpr, offset)) { #else if (cpu_contains(regs, offset)) { #endif *dest = greg; #ifdef TARGET_PPC *addr = (offset - cpu_off(gpr)) * labels_per_reg / sizeof(((CPUArchState *)0)->gpr[0]); #else *addr = (offset - cpu_off(regs)) * labels_per_reg / sizeof(((CPUArchState *)0)->regs[0]); #endif } else { *dest= gspec; *addr= offset; } } bool is_irrelevant(int64_t offset) { #ifdef TARGET_I386 bool relevant = cpu_contains(regs, offset) || cpu_contains(eip, offset) || cpu_contains(fpregs, offset) || cpu_contains(xmm_regs, offset) || cpu_contains(xmm_t0, offset) || cpu_contains(mmx_t0, offset); return !relevant; #else return offset < 0 || (size_t)offset >= sizeof(CPUArchState); #endif }
static void find_offset(FastShad *greg, FastShad *gspec, uint64_t offset, uint64_t labels_per_reg, FastShad **dest, uint64_t *addr) { if (cpu_contains(regs, offset)) { *dest = greg; *addr = (offset - cpu_off(regs)) * labels_per_reg / sizeof(((CPUState *)0)->regs[0]); } else { *dest= gspec; *addr= offset; } }
bool is_irrelevant(int64_t offset) { #ifdef TARGET_I386 bool relevant = cpu_contains(regs, offset) || cpu_contains(fpregs, offset) || cpu_contains(xmm_regs, offset) || cpu_contains(xmm_t0, offset) || cpu_contains(mmx_t0, offset) || cpu_contains(ymmh_regs, offset); return !relevant; #else bool irrelevant = offset < 0 || (size_t)offset >= sizeof(CPUState); irrelevant |= offset == cpu_off(panda_guest_pc); irrelevant |= offset == cpu_off(rr_guest_instr_count); return irrelevant; #endif }