diff --git a/src/xenia/cpu/x64/x64_emit_alu.cc b/src/xenia/cpu/x64/x64_emit_alu.cc index cd14a52cc..496c8b0ec 100644 --- a/src/xenia/cpu/x64/x64_emit_alu.cc +++ b/src/xenia/cpu/x64/x64_emit_alu.cc @@ -742,8 +742,12 @@ XEEMITTER(orx, 0x7C000378, X )(X64Emitter& e, X86Compiler& c, InstrDat // RA <- (RS) | (RB) GpVar v(c.newGpVar()); - c.mov(v, e.gpr_value(i.X.RT)); - c.or_(v, e.gpr_value(i.X.RB)); + if (i.X.RT == i.X.RB) { + c.mov(v, e.gpr_value(i.X.RT)); + } else { + c.mov(v, e.gpr_value(i.X.RT)); + c.or_(v, e.gpr_value(i.X.RB)); + } e.update_gpr_value(i.X.RA, v); if (i.X.Rc) {