diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp index e5ea85af01..9680a8439d 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_LoadStore.cpp @@ -94,6 +94,15 @@ void Jit64::lXXx(UGeckoInstruction inst) PanicAlert("Invalid instruction"); } + // PowerPC has no 8-bit sign extended load, but x86 does, so merge extsb with the load if we find it. + if (accessSize == 8 && js.next_inst.OPCD == 31 && js.next_inst.SUBOP10 == 954 && + js.next_inst.RS == inst.RD && js.next_inst.RA == inst.RD && !js.next_inst.Rc) + { + js.downcountAmount++; + js.skipnext = true; + signExtend = true; + } + // TODO(ector): Make it dynamically enable/disable idle skipping where appropriate // Will give nice boost to dual core mode // (mb2): I agree,