[ARM] Implement xorx
This commit is contained in:
parent
b30a697355
commit
5147e5167b
|
@ -155,6 +155,7 @@ public:
|
||||||
void ori(UGeckoInstruction _inst);
|
void ori(UGeckoInstruction _inst);
|
||||||
void oris(UGeckoInstruction _inst);
|
void oris(UGeckoInstruction _inst);
|
||||||
void orx(UGeckoInstruction _inst);
|
void orx(UGeckoInstruction _inst);
|
||||||
|
void xorx(UGeckoInstruction _inst);
|
||||||
void rlwimix(UGeckoInstruction _inst);
|
void rlwimix(UGeckoInstruction _inst);
|
||||||
void rlwinmx(UGeckoInstruction _inst);
|
void rlwinmx(UGeckoInstruction _inst);
|
||||||
void subfx(UGeckoInstruction _inst);
|
void subfx(UGeckoInstruction _inst);
|
||||||
|
|
|
@ -147,6 +147,7 @@ void JitArm::oris(UGeckoInstruction inst)
|
||||||
ORR(RA, RS, rA);
|
ORR(RA, RS, rA);
|
||||||
gpr.Unlock(rA);
|
gpr.Unlock(rA);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JitArm::orx(UGeckoInstruction inst)
|
void JitArm::orx(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
INSTRUCTION_START
|
INSTRUCTION_START
|
||||||
|
@ -160,6 +161,18 @@ void JitArm::orx(UGeckoInstruction inst)
|
||||||
ComputeRC();
|
ComputeRC();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void JitArm::xorx(UGeckoInstruction inst)
|
||||||
|
{
|
||||||
|
INSTRUCTION_START
|
||||||
|
JITDISABLE(Integer)
|
||||||
|
|
||||||
|
ARMReg rA = gpr.R(inst.RA);
|
||||||
|
ARMReg rS = gpr.R(inst.RS);
|
||||||
|
ARMReg rB = gpr.R(inst.RB);
|
||||||
|
EORS(rA, rS, rB);
|
||||||
|
if (inst.Rc)
|
||||||
|
ComputeRC();
|
||||||
|
}
|
||||||
void JitArm::extshx(UGeckoInstruction inst)
|
void JitArm::extshx(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
INSTRUCTION_START
|
INSTRUCTION_START
|
||||||
|
|
|
@ -198,7 +198,7 @@ static GekkoOPTemplate table31[] =
|
||||||
{60, &JitArm::Default}, //"andcx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
{60, &JitArm::Default}, //"andcx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
||||||
{444, &JitArm::orx}, //"orx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
{444, &JitArm::orx}, //"orx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
||||||
{124, &JitArm::Default}, //"norx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
{124, &JitArm::Default}, //"norx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
||||||
{316, &JitArm::Default}, //"xorx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
{316, &JitArm::xorx}, //"xorx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
||||||
{412, &JitArm::Default}, //"orcx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
{412, &JitArm::Default}, //"orcx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
||||||
{476, &JitArm::Default}, //"nandx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
{476, &JitArm::Default}, //"nandx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
||||||
{284, &JitArm::Default}, //"eqvx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
{284, &JitArm::Default}, //"eqvx", OPTYPE_INTEGER, FL_OUT_A | FL_IN_SB | FL_RC_BIT}},
|
||||||
|
|
Loading…
Reference in New Issue