From: Gabe Black Date: Thu, 30 Aug 2007 03:37:44 +0000 (-0700) Subject: X86: Implement the movsd instruction. X-Git-Tag: m5_2.0_beta4~145 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3da3190f0750bf38e6c13c691c1146f26d0d1dd8;p=gem5.git X86: Implement the movsd instruction. --HG-- extra : convert_revision : a5a73e0ddd39144d2aeeb9cc6a299516752fd4c2 --- diff --git a/src/arch/x86/isa/decoder/two_byte_opcodes.isa b/src/arch/x86/isa/decoder/two_byte_opcodes.isa index bed673e92..c426c6b0f 100644 --- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa +++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa @@ -126,8 +126,8 @@ } // repne (0xF2) 0x8: decode OPCODE_OP_BOTTOM3 { - 0x0: movsd_Vq_Wq(); - 0x1: movsd_Wq_Vq(); + 0x0: Inst::MOVSD(Vq,Wq); + 0x1: Inst::MOVSD(Wq,Vq); 0x2: movddup_Vo_Wq(); default: Inst::UD2(); } diff --git a/src/arch/x86/isa/insts/sse/move.py b/src/arch/x86/isa/insts/sse/move.py index fb38a78aa..05e28d74d 100644 --- a/src/arch/x86/isa/insts/sse/move.py +++ b/src/arch/x86/isa/insts/sse/move.py @@ -75,4 +75,28 @@ def macroop MOVLPD_P_R { def macroop MOVLPD_R_R { movfp xmml, xmml, xmmlm, dataSize=8 }; + +def macroop MOVSD_R_M { + # Zero xmmh + ldfp xmml, seg, sib, disp, dataSize=8 +}; + +def macroop MOVSD_R_P { + rdip t7 + # Zero xmmh + ldfp xmml, seg, riprel, disp, dataSize=8 +}; + +def macroop MOVSD_M_R { + stfp xmml, seg, sib, disp, dataSize=8 +}; + +def macroop MOVSD_P_R { + rdip t7 + stfp xmml, seg, riprel, disp, dataSize=8 +}; + +def macroop MOVSD_R_R { + movfp xmml, xmml, xmmlm, dataSize=8 +}; '''