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