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 "Common.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <mmsystem.h>
|
||||||
|
|
||||||
namespace Common
|
namespace Common
|
||||||
{
|
{
|
||||||
|
|
|
@ -1050,7 +1050,7 @@ void Update()
|
||||||
// Calculate actual refresh rate
|
// Calculate actual refresh rate
|
||||||
static u64 LastTick = 0;
|
static u64 LastTick = 0;
|
||||||
static int UpdateCheck = timeGetTime() + 1000, TickProgress = 0;
|
static int UpdateCheck = timeGetTime() + 1000, TickProgress = 0;
|
||||||
if (UpdateCheck < timeGetTime())
|
if (UpdateCheck < (int)timeGetTime())
|
||||||
{
|
{
|
||||||
UpdateCheck = timeGetTime() + 1000;
|
UpdateCheck = timeGetTime() + 1000;
|
||||||
TickProgress = CoreTiming::GetTicks() - LastTick;
|
TickProgress = CoreTiming::GetTicks() - LastTick;
|
||||||
|
|
|
@ -217,45 +217,51 @@ void Jit64::bcx(UGeckoInstruction inst)
|
||||||
|
|
||||||
void Jit64::bcctrx(UGeckoInstruction inst)
|
void Jit64::bcctrx(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITBranchOff)
|
// TODO: This instruction branches to count register
|
||||||
{Default(inst); return;} // turn off from debugger
|
// JIT needs currently does not implement this opcode,
|
||||||
|
// so we will fall back to the interpretor
|
||||||
|
|
||||||
INSTRUCTION_START;
|
Default(inst);
|
||||||
|
|
||||||
gpr.Flush(FLUSH_ALL);
|
//if(Core::g_CoreStartupParameter.bJITOff || Core::g_CoreStartupParameter.bJITBranchOff)
|
||||||
fpr.Flush(FLUSH_ALL);
|
// {Default(inst); return;} // turn off from debugger
|
||||||
|
|
||||||
// bool fastway = true;
|
//INSTRUCTION_START;
|
||||||
|
|
||||||
if ((inst.BO & 16) == 0)
|
//gpr.Flush(FLUSH_ALL);
|
||||||
{
|
//fpr.Flush(FLUSH_ALL);
|
||||||
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;
|
//// bool fastway = true;
|
||||||
if(inst.BO & 8)
|
|
||||||
branch = CC_NZ;
|
//if ((inst.BO & 16) == 0)
|
||||||
else
|
//{
|
||||||
branch = CC_Z;
|
// PanicAlert("Bizarro bcctrx %08x, not supported.", inst.hex);
|
||||||
*/
|
// _assert_msg_(DYNA_REC, 0, "Bizarro bcctrx");
|
||||||
// TODO(ector): Why is this commented out?
|
// /*
|
||||||
//SETcc(branch, R(ECX));
|
// fastway = false;
|
||||||
// check for EBX
|
// MOV(32, M(&PC), Imm32(js.compilerPC+4));
|
||||||
//TEST(32, R(ECX), R(ECX));
|
// MOV(32, R(EAX), M(&CR));
|
||||||
//linkEnd = J_CC(branch);
|
// XOR(32, R(ECX), R(ECX));
|
||||||
}
|
// AND(32, R(EAX), Imm32(0x80000000 >> inst.BI));
|
||||||
// NPC = CTR & 0xfffffffc;
|
|
||||||
MOV(32, R(EAX), M(&CTR));
|
// CCFlags branch;
|
||||||
if (inst.LK)
|
// if(inst.BO & 8)
|
||||||
MOV(32, M(&LR), Imm32(js.compilerPC + 4)); // LR = PC + 4;
|
// branch = CC_NZ;
|
||||||
AND(32, R(EAX), Imm32(0xFFFFFFFC));
|
// else
|
||||||
WriteExitDestInEAX(0);
|
// 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