summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
Diffstat (limited to 'libpcsxcore')
-rw-r--r--libpcsxcore/ix86/iR3000A.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/libpcsxcore/ix86/iR3000A.c b/libpcsxcore/ix86/iR3000A.c
index 4f7029ab..204580c1 100644
--- a/libpcsxcore/ix86/iR3000A.c
+++ b/libpcsxcore/ix86/iR3000A.c
@@ -163,7 +163,23 @@ static void SetBranch() {
return;
}
- recBSC[psxRegs.code>>26]();
+
+ switch( psxRegs.code >> 24 ) {
+ // Lode Runner (jr - beq)
+
+ // bltz - bgez - bltzal - bgezal / beq - bne - blez - bgtz
+ case 0x04:
+ case 0x10:
+ case 0x14:
+ case 0x18:
+ case 0x1c:
+ break;
+
+ default:
+ recBSC[psxRegs.code>>26]();
+ break;
+ }
+
iFlushRegs();
MOV32MtoR(EAX, (u32)&target);