Skip to content

Commit

Permalink
Merge pull request #12123 from JosJuice/jit-mcrxr
Browse files Browse the repository at this point in the history
Jit: Some mcrxr optimizations
  • Loading branch information
lioncash committed Nov 28, 2023
2 parents 20b13df + c70dcf9 commit 1df685b
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
4 changes: 2 additions & 2 deletions Source/Core/Core/PowerPC/Jit64/Jit_SystemRegisters.cpp
Expand Up @@ -588,8 +588,8 @@ void Jit64::mcrxr(UGeckoInstruction inst)
MOV(64, CROffset(inst.CRFD), R(RSCRATCH));

// Clear XER[0-3]
MOV(8, PPCSTATE(xer_ca), Imm8(0));
MOV(8, PPCSTATE(xer_so_ov), Imm8(0));
static_assert(PPCSTATE_OFF(xer_ca) + 1 == PPCSTATE_OFF(xer_so_ov));
MOV(16, PPCSTATE(xer_ca), Imm8(0));
}

void Jit64::crXXX(UGeckoInstruction inst)
Expand Down
Expand Up @@ -144,16 +144,16 @@ void JitArm64::mcrxr(UGeckoInstruction inst)
LDRB(IndexType::Unsigned, WB, PPC_REG, PPCSTATE_OFF(xer_so_ov));

// [0 SO OV CA]
ADD(WA, WA, WB, ArithOption(WB, ShiftType::LSL, 2));
BFI(WA, WB, 1, 2);
// [SO OV CA 0] << 3
LSL(WA, WA, 4);

MOVP2R(XB, PowerPC::ConditionRegister::s_crTable.data());
LDR(XB, XB, XA);

// Clear XER[0-3]
STRB(IndexType::Unsigned, ARM64Reg::WZR, PPC_REG, PPCSTATE_OFF(xer_ca));
STRB(IndexType::Unsigned, ARM64Reg::WZR, PPC_REG, PPCSTATE_OFF(xer_so_ov));
static_assert(PPCSTATE_OFF(xer_ca) + 1 == PPCSTATE_OFF(xer_so_ov));
STRH(IndexType::Unsigned, ARM64Reg::WZR, PPC_REG, PPCSTATE_OFF(xer_ca));

gpr.Unlock(WA);
}
Expand Down

0 comments on commit 1df685b

Please sign in to comment.