diff options
Diffstat (limited to 'src/libtools/signals.c')
| -rw-r--r-- | src/libtools/signals.c | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/src/libtools/signals.c b/src/libtools/signals.c index cacf19b5..b924a32f 100644 --- a/src/libtools/signals.c +++ b/src/libtools/signals.c @@ -484,54 +484,6 @@ EXPORT int my_sigaltstack(x64emu_t* emu, const x64_stack_t* ss, x64_stack_t* oss } #ifdef DYNAREC -uintptr_t getX64Address(dynablock_t* db, uintptr_t native_addr) -{ - uintptr_t x64addr = (uintptr_t)db->x64_addr; - uintptr_t armaddr = (uintptr_t)db->block; - if(native_addr<(uintptr_t)db->block || native_addr>(uintptr_t)db->block+db->size) - return 0; - int i = 0; - do { - int x64sz = 0; - int armsz = 0; - do { - x64sz+=db->instsize[i].x64; - armsz+=db->instsize[i].nat*4; - ++i; - } while((db->instsize[i-1].x64==15) || (db->instsize[i-1].nat==15)); - // if the opcode is a NOP on ARM side (so armsz==0), it cannot be an address to find - if((native_addr>=armaddr) && (native_addr<(armaddr+armsz))) - return x64addr; - armaddr+=armsz; - x64addr+=x64sz; - } while(db->instsize[i].x64 || db->instsize[i].nat); - return x64addr; -} -int getX64AddressInst(dynablock_t* db, uintptr_t x64pc) -{ - uintptr_t x64addr = (uintptr_t)db->x64_addr; - uintptr_t armaddr = (uintptr_t)db->block; - int ret = 0; - if(x64pc<(uintptr_t)db->x64_addr || x64pc>(uintptr_t)db->x64_addr+db->x64_size) - return -1; - int i = 0; - do { - int x64sz = 0; - int armsz = 0; - do { - x64sz+=db->instsize[i].x64; - armsz+=db->instsize[i].nat*4; - ++i; - } while((db->instsize[i-1].x64==15) || (db->instsize[i-1].nat==15)); - // if the opcode is a NOP on ARM side (so armsz==0), it cannot be an address to find - if((x64pc>=x64addr) && (x64pc<(x64addr+x64sz))) - return ret; - armaddr+=armsz; - x64addr+=x64sz; - ret++; - } while(db->instsize[i].x64 || db->instsize[i].nat); - return ret; -} x64emu_t* getEmuSignal(x64emu_t* emu, ucontext_t* p, dynablock_t* db) { #if defined(ARM64) |