From ac545b3a5cc51f7b521a7820b08923d2bbe360c1 Mon Sep 17 00:00:00 2001 From: notaz Date: Sat, 18 Dec 2010 21:32:48 +0200 Subject: [PATCH] drc: pass correct address to verify_code --- libpcsxcore/new_dynarec/assem_arm.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libpcsxcore/new_dynarec/assem_arm.c b/libpcsxcore/new_dynarec/assem_arm.c index c8dab5bc..696509f5 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 -- 2.39.2