Fixed Issue #14.

This commit is contained in:
kobalicekp
2014-04-03 22:17:41 +02:00
parent 324df8d6cb
commit 5ac69447dc
3 changed files with 22 additions and 2 deletions
+18
View File
@@ -1717,6 +1717,24 @@ _Prepare:
}
break;
case kInstGroupX86MovSxd:
if (encoded == ENC_OPS(Reg, Reg, None)) {
ADD_REX_W(true);
opReg = static_cast<const GpReg*>(o0)->getRegIndex();
rmReg = static_cast<const GpReg*>(o1)->getRegIndex();
goto _EmitX86R;
}
if (encoded == ENC_OPS(Reg, Mem, None)) {
ADD_REX_W(true);
opReg = static_cast<const GpReg*>(o0)->getRegIndex();
rmMem = static_cast<const Mem*>(o1);
goto _EmitX86M;
}
break;
case kInstGroupX86MovPtr:
if (encoded == ENC_OPS(Reg, Imm, None)) {
ASMJIT_ASSERT(static_cast<const GpReg*>(o0)->getRegIndex() == 0);
+1 -1
View File
@@ -2284,7 +2284,7 @@ const InstInfo _instInfo[] = {
INST(kInstMovsldup , "movsldup" , G(ExtRm) , F(Move) , O(Xmm) , O(XmmMem) , U , U , O_F30F00(12,U) , U ),
INST(kInstMovss , "movss" , G(ExtMov) , F(Move) , O(XmmMem) , O(XmmMem) , U , U , O_F30F00(10,U) , O_F30F00(11,U) ),
INST(kInstMovsx , "movsx" , G(X86MovSxZx) , F(None) , O(Gqdw) , O(GwbMem) , U , U , O_000F00(BE,U) , U ),
INST(kInstMovsxd , "movsxd" , G(X86MovSxZx) , F(Move) , O(Gq) , O(GdMem) , U , U , O_000000(63,U) , U ),
INST(kInstMovsxd , "movsxd" , G(X86MovSxd) , F(Move) , O(Gq) , O(GdMem) , U , U , O_000000(63,U) , U ),
INST(kInstMovupd , "movupd" , G(ExtMov) , F(Move) , O(XmmMem) , O(XmmMem) , U , U , O_660F00(10,U) , O_660F00(11,U) ),
INST(kInstMovups , "movups" , G(ExtMov) , F(Move) , O(XmmMem) , O(XmmMem) , U , U , O_000F00(10,U) , O_000F00(11,U) ),
INST(kInstMovzx , "movzx" , G(X86MovSxZx) , F(Move) , O(Gqdw) , O(GwbMem) , U , U , O_000F00(B6,U) , U ),
+3 -1
View File
@@ -1483,8 +1483,10 @@ ASMJIT_ENUM(kInstGroup) {
kInstGroupX86Lea,
//! @brief Mov.
kInstGroupX86Mov,
//! @brief Movsx/Movsxd/Movzx.
//! @brief Movsx/Movzx.
kInstGroupX86MovSxZx,
//! @brief Movsxd.
kInstGroupX86MovSxd,
//! @brief Mov having absolute memory operand (x86/x64).
kInstGroupX86MovPtr,
//! @brief Push.