armjit-fpu: Compile VFPU prefix setting

This commit is contained in:
Henrik Rydgard 2013-02-15 23:18:41 +01:00
parent 0ee7578d68
commit fdee111bca
2 changed files with 6 additions and 11 deletions

View file

@ -22,7 +22,7 @@ namespace MIPSComp
{
void Jit::Comp_VPFX(u32 op)
{
DISABLE;
CONDITIONAL_DISABLE;
int data = op & 0xFFFFF;
int regnum = (op >> 24) & 3;

View file

@ -72,8 +72,6 @@ void Jit::FlushAll()
void Jit::FlushPrefixV()
{
return;
if ((js.prefixSFlag & ArmJitState::PREFIX_DIRTY) != 0)
{
MOVI2R(R0, js.prefixS);
@ -92,14 +90,6 @@ void Jit::FlushPrefixV()
{
MOVI2R(R0, js.prefixD);
STR(CTXREG, R0, offsetof(MIPSState, vfpuCtrl[VFPU_CTRL_DPREFIX]));
//MOV(32, M((void *)&mips_->vfpuCtrl[VFPU_CTRL_DPREFIX]), Imm32(js.prefixD));
// TODO:
/*
_dbg_assert_msg_(JIT, sizeof(bool) <= 4, "Bools shouldn't be that big?");
const size_t bool_stride = 4 / sizeof(bool);
for (size_t i = 0; i < ARRAY_SIZE(mips_->vfpuWriteMask); i += bool_stride)
MOV(32, M((void *)&mips_->vfpuWriteMask[i]), Imm32(*(u32 *)&js.writeMask[i]));
*/
js.prefixDFlag = (ArmJitState::PrefixState) (js.prefixDFlag & ~ArmJitState::PREFIX_DIRTY);
}
}
@ -170,6 +160,7 @@ const u8 *Jit::DoJit(u32 em_address, ArmJitBlock *b)
js.curBlock = b;
js.compiling = true;
js.inDelaySlot = false;
js.PrefixStart();
// We add a check before the block, used when entering from a linked block.
b->checkedEntry = GetCodePtr();
@ -250,6 +241,10 @@ void Jit::Comp_Generic(u32 op)
MOVI2R(R0, op);
QuickCallFunction(R1, (void *)func);
}
// Might have eaten prefixes, hard to tell...
if ((MIPSGetInfo(op) & IS_VFPU) != 0)
js.PrefixStart();
}
void Jit::MovFromPC(ARMReg r) {