JitIL: Fixed a wrong implementation reported in r6111.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6115 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
nodchip 2010-08-21 10:53:17 +00:00
parent 62c4d439ce
commit 10a14d17d3
3 changed files with 13 additions and 1 deletions

View File

@ -168,6 +168,7 @@ public:
void mftb(UGeckoInstruction inst); void mftb(UGeckoInstruction inst);
void mtcrf(UGeckoInstruction inst); void mtcrf(UGeckoInstruction inst);
void mfcr(UGeckoInstruction inst); void mfcr(UGeckoInstruction inst);
void mcrf(UGeckoInstruction inst);
void crXX(UGeckoInstruction inst); void crXX(UGeckoInstruction inst);
void reg_imm(UGeckoInstruction inst); void reg_imm(UGeckoInstruction inst);

View File

@ -155,6 +155,17 @@ void JitIL::mtcrf(UGeckoInstruction inst)
} }
} }
void JitIL::mcrf(UGeckoInstruction inst)
{
INSTRUCTION_START
JITDISABLE(SystemRegisters)
if (inst.CRFS != inst.CRFD)
{
ibuild.EmitStoreCR(ibuild.EmitLoadCR(inst.CRFS), inst.CRFD);
}
}
void JitIL::crXX(UGeckoInstruction inst) void JitIL::crXX(UGeckoInstruction inst)
{ {
// Ported from Jit_SystemRegister.cpp // Ported from Jit_SystemRegister.cpp

View File

@ -186,7 +186,7 @@ static GekkoOPTemplate table19[] =
{193, &JitIL::crXX}, //"crxor", OPTYPE_CR, FL_EVIL}}, {193, &JitIL::crXX}, //"crxor", OPTYPE_CR, FL_EVIL}},
{150, &JitIL::DoNothing}, //"isync", OPTYPE_ICACHE, FL_EVIL}}, {150, &JitIL::DoNothing}, //"isync", OPTYPE_ICACHE, FL_EVIL}},
{0, &JitIL::mfcr}, //"mcrf", OPTYPE_SYSTEM, FL_EVIL}}, {0, &JitIL::mcrf}, //"mcrf", OPTYPE_SYSTEM, FL_EVIL}},
{50, &JitIL::rfi}, //"rfi", OPTYPE_SYSTEM, FL_ENDBLOCK | FL_CHECKEXCEPTIONS, 1}}, {50, &JitIL::rfi}, //"rfi", OPTYPE_SYSTEM, FL_ENDBLOCK | FL_CHECKEXCEPTIONS, 1}},
{18, &JitIL::Default}, //"rfid", OPTYPE_SYSTEM, FL_ENDBLOCK | FL_CHECKEXCEPTIONS}} {18, &JitIL::Default}, //"rfid", OPTYPE_SYSTEM, FL_ENDBLOCK | FL_CHECKEXCEPTIONS}}