aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authornotaz2010-12-18 21:32:48 +0200
committernotaz2010-12-18 21:32:48 +0200
commitac545b3a5cc51f7b521a7820b08923d2bbe360c1 (patch)
tree68f5017a21d0befe35c32789dac4f8f8d3a41e39 /libpcsxcore
parent996cc15d48644ad3c7869c926594d8f20f3e6073 (diff)
downloadpcsx_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.c10
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