aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore/new_dynarec
diff options
context:
space:
mode:
authornotaz2011-10-09 20:00:55 +0300
committernotaz2011-10-10 00:25:59 +0300
commit911f2d55ac72cab3417983708cbb6a5fde2f13db (patch)
tree4cc4d555d08afad9636cab3eabe49217e5c89de0 /libpcsxcore/new_dynarec
parent2573466affd06edebd68070bf167a62ca764f2b4 (diff)
downloadpcsx_rearmed-911f2d55ac72cab3417983708cbb6a5fde2f13db.tar.gz
pcsx_rearmed-911f2d55ac72cab3417983708cbb6a5fde2f13db.tar.bz2
pcsx_rearmed-911f2d55ac72cab3417983708cbb6a5fde2f13db.zip
drc: check for interrupts after RFE
this missing check wasn't causing too many problems because of events on every hsync, which are gone now.
Diffstat (limited to 'libpcsxcore/new_dynarec')
-rw-r--r--libpcsxcore/new_dynarec/new_dynarec.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c
index 4cb43c8..9698037 100644
--- a/libpcsxcore/new_dynarec/new_dynarec.c
+++ b/libpcsxcore/new_dynarec/new_dynarec.c
@@ -5403,6 +5403,12 @@ void rjump_assemble(int i,struct regstat *i_regs)
//assert(adj==0);
emit_addimm_and_set_flags(CLOCK_ADJUST(ccadj[i]+2),HOST_CCREG);
add_stub(CC_STUB,(int)out,jump_vaddr_reg[rs],0,i,-1,TAKEN,0);
+#ifdef PCSX
+ if(itype[i+1]==COP0&&(source[i+1]&0x3f)==0x10)
+ // special case for RFE
+ emit_jmp(0);
+ else
+#endif
emit_jns(0);
//load_regs_bt(branch_regs[i].regmap,branch_regs[i].is32,branch_regs[i].dirty,-1);
#ifdef USE_MINI_HT