aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornotaz2010-11-24 23:40:00 +0200
committernotaz2010-11-24 23:40:00 +0200
commitcfcba99acf1ade6b95a69e8d04cc4cde9cd95d00 (patch)
tree6273bc7bcb47e5ea188660acb249f5c27f8ff7a5
parent90ae6d4ea75d033ca2faa08c123d04ca0b9b8262 (diff)
downloadpcsx_rearmed-cfcba99acf1ade6b95a69e8d04cc4cde9cd95d00.tar.gz
pcsx_rearmed-cfcba99acf1ade6b95a69e8d04cc4cde9cd95d00.tar.bz2
pcsx_rearmed-cfcba99acf1ade6b95a69e8d04cc4cde9cd95d00.zip
drc: bugfix
-rw-r--r--libpcsxcore/new_dynarec/assem_arm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libpcsxcore/new_dynarec/assem_arm.c b/libpcsxcore/new_dynarec/assem_arm.c
index 697585c..d0edaca 100644
--- a/libpcsxcore/new_dynarec/assem_arm.c
+++ b/libpcsxcore/new_dynarec/assem_arm.c
@@ -205,7 +205,7 @@ int verify_dirty(int addr)
#endif
if((*ptr&0xFF000000)!=0xeb000000) ptr++;
assert((*ptr&0xFF000000)==0xeb000000); // bl instruction
- u_int verifier=(int)ptr+((*ptr<<8)>>6)+8; // get target of bl
+ u_int verifier=(int)ptr+((signed int)(*ptr<<8)>>6)+8; // get target of bl
if(verifier==(u_int)verify_code_vm||verifier==(u_int)verify_code_ds) {
unsigned int page=source>>12;
unsigned int map_value=memory_map[page];
@@ -258,7 +258,7 @@ void get_bounds(int addr,u_int *start,u_int *end)
#endif
if((*ptr&0xFF000000)!=0xeb000000) ptr++;
assert((*ptr&0xFF000000)==0xeb000000); // bl instruction
- u_int verifier=(int)ptr+((*ptr<<8)>>6)+8; // get target of bl
+ u_int verifier=(int)ptr+((signed int)(*ptr<<8)>>6)+8; // get target of bl
if(verifier==(u_int)verify_code_vm||verifier==(u_int)verify_code_ds) {
if(memory_map[source>>12]>=0x80000000) source = 0;
else source = source+(memory_map[source>>12]<<2);