fixes for jit64 twx

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6873 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Shawn Hoffman 2011-01-18 05:59:38 +00:00
parent 1a3cd2d34c
commit c24cedc03b
1 changed files with 8 additions and 5 deletions

View File

@ -1501,6 +1501,8 @@ void Jit64::twx(UGeckoInstruction inst)
gpr.Flush(FLUSH_ALL);
fpr.Flush(FLUSH_ALL);
MOV(8, R(AL), Imm8(inst.TO));
if (inst.OPCD == 3) // twi
CMP(32, gpr.R(a), gpr.R(inst.RB));
else // tw
@ -1514,23 +1516,23 @@ void Jit64::twx(UGeckoInstruction inst)
FixupBranch lg = J_CC(CC_O);
SetJumpTarget(al);
TEST(8, R(BL), Imm8(16));
TEST(8, R(AL), Imm8(16));
FixupBranch exit1 = J_CC(CC_NZ);
FixupBranch take1 = J();
SetJumpTarget(ag);
TEST(8, R(BL), Imm8(8));
TEST(8, R(AL), Imm8(8));
FixupBranch exit2 = J_CC(CC_NZ);
FixupBranch take2 = J();
SetJumpTarget(ae);
TEST(8, R(BL), Imm8(4));
TEST(8, R(AL), Imm8(4));
FixupBranch exit3 = J_CC(CC_NZ);
FixupBranch take3 = J();
SetJumpTarget(ll);
TEST(8, R(BL), Imm8(2));
TEST(8, R(AL), Imm8(2));
FixupBranch exit4 = J_CC(CC_NZ);
FixupBranch take4 = J();
SetJumpTarget(lg);
TEST(8, R(BL), Imm8(1));
TEST(8, R(AL), Imm8(1));
FixupBranch exit5 = J_CC(CC_NZ);
FixupBranch take5 = J();
@ -1548,4 +1550,5 @@ void Jit64::twx(UGeckoInstruction inst)
SetJumpTarget(exit3);
SetJumpTarget(exit4);
SetJumpTarget(exit5);
WriteExit(js.compilerPC + 4, 1);
}