diff options
author | notaz | 2010-12-18 21:32:48 +0200 |
---|---|---|
committer | notaz | 2010-12-18 21:32:48 +0200 |
commit | ac545b3a5cc51f7b521a7820b08923d2bbe360c1 (patch) | |
tree | 68f5017a21d0befe35c32789dac4f8f8d3a41e39 /libpcsxcore | |
parent | 996cc15d48644ad3c7869c926594d8f20f3e6073 (diff) | |
download | pcsx_rearmed-ac545b3a5cc51f7b521a7820b08923d2bbe360c1.tar.gz pcsx_rearmed-ac545b3a5cc51f7b521a7820b08923d2bbe360c1.tar.bz2 pcsx_rearmed-ac545b3a5cc51f7b521a7820b08923d2bbe360c1.zip |
drc: pass correct address to verify_code
Diffstat (limited to 'libpcsxcore')
-rw-r--r-- | libpcsxcore/new_dynarec/assem_arm.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libpcsxcore/new_dynarec/assem_arm.c b/libpcsxcore/new_dynarec/assem_arm.c index c8dab5b..696509f 100644 --- a/libpcsxcore/new_dynarec/assem_arm.c +++ b/libpcsxcore/new_dynarec/assem_arm.c @@ -2959,15 +2959,19 @@ do_invstub(int n) int do_dirty_stub(int i) { assem_debug("do_dirty_stub %x\n",start+i*4); + u_int addr=(int)start<(int)0xC0000000?(u_int)source:(u_int)start; + #ifdef PCSX + addr=(u_int)source; + #endif // Careful about the code output here, verify_dirty needs to parse it. #ifdef ARMv5_ONLY - emit_loadlp((int)start<(int)0xC0000000?(int)source:(int)start,1); + emit_loadlp(addr,1); emit_loadlp((int)copy,2); emit_loadlp(slen*4,3); #else - emit_movw(((int)start<(int)0xC0000000?(u_int)source:(u_int)start)&0x0000FFFF,1); + emit_movw(addr&0x0000FFFF,1); emit_movw(((u_int)copy)&0x0000FFFF,2); - emit_movt(((int)start<(int)0xC0000000?(u_int)source:(u_int)start)&0xFFFF0000,1); + emit_movt(addr&0xFFFF0000,1); emit_movt(((u_int)copy)&0xFFFF0000,2); emit_movw(slen*4,3); #endif |