diff options
author | Twinaphex | 2014-12-07 12:00:27 +0100 |
---|---|---|
committer | Twinaphex | 2014-12-07 12:00:27 +0100 |
commit | 13bb560e427a36c6900ea09061efecc2a67d53d0 (patch) | |
tree | decc30d337005061b294f8f30371d373f74a425a /libpcsxcore/new_dynarec | |
parent | 89329f140b3a7982dd3529ab374195b0e0b23dc8 (diff) | |
parent | 52990dd97f8a7abbe5b24d3405f3bcc3ba426e5d (diff) | |
download | pcsx_rearmed-13bb560e427a36c6900ea09061efecc2a67d53d0.tar.gz pcsx_rearmed-13bb560e427a36c6900ea09061efecc2a67d53d0.tar.bz2 pcsx_rearmed-13bb560e427a36c6900ea09061efecc2a67d53d0.zip |
Merge pull request #9 from Kekun/fix-load-invalid-game
Fixes an infinite loop when loading an invalid game
Diffstat (limited to 'libpcsxcore/new_dynarec')
-rw-r--r-- | libpcsxcore/new_dynarec/assem_arm.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libpcsxcore/new_dynarec/assem_arm.c b/libpcsxcore/new_dynarec/assem_arm.c index 45edd65..9ee832e 100644 --- a/libpcsxcore/new_dynarec/assem_arm.c +++ b/libpcsxcore/new_dynarec/assem_arm.c @@ -3999,10 +3999,16 @@ static int emit_fastpath_cmp_jump(int i,int addr,int *addr_reg_override) type=0; } else if(type==MTYPE_1F80) { // scratchpad - emit_addimm(addr,-0x1f800000,HOST_TEMPREG); - emit_cmpimm(HOST_TEMPREG,0x1000); - jaddr=(int)out; - emit_jc(0); + if (psxH == (void *)0x1f800000) { + emit_addimm(addr,-0x1f800000,HOST_TEMPREG); + emit_cmpimm(HOST_TEMPREG,0x1000); + jaddr=(int)out; + emit_jc(0); + } + else { + // do usual RAM check, jump will go to the right handler + type=0; + } } #endif |