aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornotaz2011-06-14 19:21:55 +0300
committernotaz2011-06-14 19:21:55 +0300
commit04fd948ab0639acff080434f54212af13ab14ef1 (patch)
tree85f1c61992bc6507d0d46149485a6086edf3601f
parent9c1517da3ec9533c8722a7a0e5bbf815dbb2909f (diff)
downloadpcsx_rearmed-04fd948ab0639acff080434f54212af13ab14ef1.tar.gz
pcsx_rearmed-04fd948ab0639acff080434f54212af13ab14ef1.tar.bz2
pcsx_rearmed-04fd948ab0639acff080434f54212af13ab14ef1.zip
drc: re-add bt part that was removed with pass7
..as noticed by Ari64.
-rw-r--r--libpcsxcore/new_dynarec/new_dynarec.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c
index db766b3..712a034 100644
--- a/libpcsxcore/new_dynarec/new_dynarec.c
+++ b/libpcsxcore/new_dynarec/new_dynarec.c
@@ -10537,6 +10537,19 @@ int new_recompile_block(int addr)
}
//requires_32bit[i]=is32[i]&~unneeded_reg_upper[i]; // DEBUG
}
+#else
+ for (i=slen-1;i>=0;i--)
+ {
+ if(itype[i]==CJUMP||itype[i]==SJUMP||itype[i]==FJUMP)
+ {
+ // Conditional branch
+ if((source[i]>>16)!=0x1000&&i<slen-2) {
+ // Mark this address as a branch target since it may be called
+ // upon return from interrupt
+ bt[i+2]=1;
+ }
+ }
+ }
#endif
if(itype[slen-1]==SPAN) {