Make immediates more explicit

Instead of just casting OpArg::offset when needed, add some
accessor functions.

Also add some safety asserts to catch any mistakes.
This commit is contained in:
Scott Mansell
2015-03-16 22:58:40 +13:00
parent 4b7748f3c0
commit 6262a9bcbe
7 changed files with 72 additions and 59 deletions

View File

@ -903,19 +903,19 @@ void DSPJitRegCache::writeReg(int dreg, OpArg arg)
switch (regs[dreg].size)
{
case 2:
emitter.MOV(16, reg, Imm16((u16) arg.offset));
emitter.MOV(16, reg, Imm16(arg.Imm16()));
break;
case 4:
emitter.MOV(32, reg, Imm32((u32) arg.offset));
emitter.MOV(32, reg, Imm32(arg.Imm32()));
break;
case 8:
if ((u32) arg.offset == arg.offset)
if ((u32)arg.Imm64() == arg.Imm64())
{
emitter.MOV(64, reg, Imm32((u32) arg.offset));
emitter.MOV(64, reg, Imm32((u32) arg.Imm64()));
}
else
{
emitter.MOV(64, reg, Imm64(arg.offset));
emitter.MOV(64, reg, Imm64(arg.Imm64()));
}
break;
default: