diff options
author | notaz | 2010-12-18 19:51:06 +0200 |
---|---|---|
committer | notaz | 2010-12-18 19:51:06 +0200 |
commit | 75dec299b045862ed759c21bb309270c48089dd0 (patch) | |
tree | b2318bf6b1aa42fd15eb385484b8b7fd1f55e751 /libpcsxcore/new_dynarec | |
parent | 87c06e512fb1b757c1c4359e46359654cfcb8b82 (diff) | |
download | pcsx_rearmed-75dec299b045862ed759c21bb309270c48089dd0.tar.gz pcsx_rearmed-75dec299b045862ed759c21bb309270c48089dd0.tar.bz2 pcsx_rearmed-75dec299b045862ed759c21bb309270c48089dd0.zip |
drc: end block on syscall and hlecall, not insn after them
..or else we might get jump there, which causes it to abort.
Also remove assert that's hit occasionally.
Diffstat (limited to 'libpcsxcore/new_dynarec')
-rw-r--r-- | libpcsxcore/new_dynarec/new_dynarec.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c index 2f42f43..2e7f75a 100644 --- a/libpcsxcore/new_dynarec/new_dynarec.c +++ b/libpcsxcore/new_dynarec/new_dynarec.c @@ -8104,7 +8104,7 @@ int new_recompile_block(int addr) case 0x3B: strcpy(insn[i],"HLECALL"); type=HLECALL; break; #endif default: strcpy(insn[i],"???"); type=NI; - printf("NI %08x @%08x\n", source[i], addr + i*4); + printf("NI %08x @%08x (%08x)\n", source[i], addr + i*4, addr); break; } itype[i]=type; @@ -8359,9 +8359,9 @@ int new_recompile_block(int addr) // Don't get too close to the limit if(i>MAXBLOCK/2) done=1; } - if(i>0&&itype[i-1]==SYSCALL&&stop_after_jal) done=1; - if(itype[i-1]==HLECALL) done=1; - assert(i<MAXBLOCK-1); + if(itype[i]==SYSCALL&&stop_after_jal) done=1; + if(itype[i]==HLECALL) done=1; + //assert(i<MAXBLOCK-1); if(start+i*4==pagelimit-4) done=1; assert(start+i*4<pagelimit); if (i==MAXBLOCK-1) done=1; |