mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-14 21:37:52 -07:00
bcctrx opcode will fall back to the interpreter, and a minor compile and warning fix.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3454 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
4395417b68
commit
a83a4fbc0a
@ -20,6 +20,7 @@
|
||||
|
||||
#include "Common.h"
|
||||
#include <string>
|
||||
#include <mmsystem.h>
|
||||
|
||||
namespace Common
|
||||
{
|
||||
|
@ -1050,7 +1050,7 @@ void Update()
|
||||
// Calculate actual refresh rate
|
||||
static u64 LastTick = 0;
|
||||
static int UpdateCheck = timeGetTime() + 1000, TickProgress = 0;
|
||||
if (UpdateCheck < timeGetTime())
|
||||
if (UpdateCheck < (int)timeGetTime())
|
||||
{
|
||||
UpdateCheck = timeGetTime() + 1000;
|
||||
TickProgress = CoreTiming::GetTicks() - LastTick;
|
||||
|
@ -217,45 +217,51 @@ void Jit64::bcx(UGeckoInstruction inst)
|
||||
|
||||
void Jit64::bcctrx(UGeckoInstruction inst)
|
||||
{
|
||||
if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITBranchOff)
|
||||
{Default(inst); return;} // turn off from debugger
|
||||
// TODO: This instruction branches to count register
|
||||
// JIT needs currently does not implement this opcode,
|
||||
// so we will fall back to the interpretor
|
||||
|
||||
INSTRUCTION_START;
|
||||
Default(inst);
|
||||
|
||||
gpr.Flush(FLUSH_ALL);
|
||||
fpr.Flush(FLUSH_ALL);
|
||||
//if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITBranchOff)
|
||||
// {Default(inst); return;} // turn off from debugger
|
||||
|
||||
// bool fastway = true;
|
||||
//INSTRUCTION_START;
|
||||
|
||||
if ((inst.BO & 16) == 0)
|
||||
{
|
||||
PanicAlert("Bizarro bcctrx %08x, not supported.", inst.hex);
|
||||
_assert_msg_(DYNA_REC, 0, "Bizarro bcctrx");
|
||||
/*
|
||||
fastway = false;
|
||||
MOV(32, M(&PC), Imm32(js.compilerPC+4));
|
||||
MOV(32, R(EAX), M(&CR));
|
||||
XOR(32, R(ECX), R(ECX));
|
||||
AND(32, R(EAX), Imm32(0x80000000 >> inst.BI));
|
||||
//gpr.Flush(FLUSH_ALL);
|
||||
//fpr.Flush(FLUSH_ALL);
|
||||
|
||||
CCFlags branch;
|
||||
if(inst.BO & 8)
|
||||
branch = CC_NZ;
|
||||
else
|
||||
branch = CC_Z;
|
||||
*/
|
||||
// TODO(ector): Why is this commented out?
|
||||
//SETcc(branch, R(ECX));
|
||||
// check for EBX
|
||||
//TEST(32, R(ECX), R(ECX));
|
||||
//linkEnd = J_CC(branch);
|
||||
}
|
||||
// NPC = CTR & 0xfffffffc;
|
||||
MOV(32, R(EAX), M(&CTR));
|
||||
if (inst.LK)
|
||||
MOV(32, M(&LR), Imm32(js.compilerPC + 4)); // LR = PC + 4;
|
||||
AND(32, R(EAX), Imm32(0xFFFFFFFC));
|
||||
WriteExitDestInEAX(0);
|
||||
//// bool fastway = true;
|
||||
|
||||
//if ((inst.BO & 16) == 0)
|
||||
//{
|
||||
// PanicAlert("Bizarro bcctrx %08x, not supported.", inst.hex);
|
||||
// _assert_msg_(DYNA_REC, 0, "Bizarro bcctrx");
|
||||
// /*
|
||||
// fastway = false;
|
||||
// MOV(32, M(&PC), Imm32(js.compilerPC+4));
|
||||
// MOV(32, R(EAX), M(&CR));
|
||||
// XOR(32, R(ECX), R(ECX));
|
||||
// AND(32, R(EAX), Imm32(0x80000000 >> inst.BI));
|
||||
|
||||
// CCFlags branch;
|
||||
// if(inst.BO & 8)
|
||||
// branch = CC_NZ;
|
||||
// else
|
||||
// branch = CC_Z;
|
||||
// */
|
||||
// // TODO(ector): Why is this commented out?
|
||||
// //SETcc(branch, R(ECX));
|
||||
// // check for EBX
|
||||
// //TEST(32, R(ECX), R(ECX));
|
||||
// //linkEnd = J_CC(branch);
|
||||
//}
|
||||
//// NPC = CTR & 0xfffffffc;
|
||||
//MOV(32, R(EAX), M(&CTR));
|
||||
//if (inst.LK)
|
||||
// MOV(32, M(&LR), Imm32(js.compilerPC + 4)); // LR = PC + 4;
|
||||
//AND(32, R(EAX), Imm32(0xFFFFFFFC));
|
||||
//WriteExitDestInEAX(0);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user