aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore/new_dynarec/new_dynarec.c
diff options
context:
space:
mode:
authornotaz2010-12-18 19:51:06 +0200
committernotaz2010-12-18 19:51:06 +0200
commit75dec299b045862ed759c21bb309270c48089dd0 (patch)
treeb2318bf6b1aa42fd15eb385484b8b7fd1f55e751 /libpcsxcore/new_dynarec/new_dynarec.c
parent87c06e512fb1b757c1c4359e46359654cfcb8b82 (diff)
downloadpcsx_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/new_dynarec.c')
-rw-r--r--libpcsxcore/new_dynarec/new_dynarec.c8
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;