diff --git a/src/arch/x86/isa/decoder/two_byte_opcodes.isa b/src/arch/x86/isa/decoder/two_byte_opcodes.isa index ba150232e0..f88ea89d4d 100644 --- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa +++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa @@ -951,7 +951,7 @@ } // repe (0xF3) 0x4: decode OPCODE_OP_BOTTOM3 { - 0x6: WarnUnimpl::movq2dq_Vo_PRq(); + 0x6: MOVQ2DQ(Vo,PRq); default: UD2(); } // operand size (0x66) diff --git a/src/arch/x86/isa/insts/simd128/integer/data_transfer/move.py b/src/arch/x86/isa/insts/simd128/integer/data_transfer/move.py index b4c96cd8e0..c34bd42bb2 100644 --- a/src/arch/x86/isa/insts/simd128/integer/data_transfer/move.py +++ b/src/arch/x86/isa/insts/simd128/integer/data_transfer/move.py @@ -82,8 +82,12 @@ def macroop MOVQ_P_XMM { def macroop MOVDQ2Q_MMX_XMM { movfp mmx, xmmlm, dataSize=8 }; + +def macroop MOVQ2DQ_XMM_MMX { + movfp xmml, mmxm, dataSize=8 + lfpimm xmmh, 0 +}; ''' # MOVDQA # MOVDQU -# MOVQ2DQ # LDDQU