diff options
author | notaz | 2010-11-24 23:40:00 +0200 |
---|---|---|
committer | notaz | 2010-11-24 23:40:00 +0200 |
commit | cfcba99acf1ade6b95a69e8d04cc4cde9cd95d00 (patch) | |
tree | 6273bc7bcb47e5ea188660acb249f5c27f8ff7a5 | |
parent | 90ae6d4ea75d033ca2faa08c123d04ca0b9b8262 (diff) | |
download | pcsx_rearmed-cfcba99acf1ade6b95a69e8d04cc4cde9cd95d00.tar.gz pcsx_rearmed-cfcba99acf1ade6b95a69e8d04cc4cde9cd95d00.tar.bz2 pcsx_rearmed-cfcba99acf1ade6b95a69e8d04cc4cde9cd95d00.zip |
drc: bugfix
-rw-r--r-- | libpcsxcore/new_dynarec/assem_arm.c | 4 |
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); |