From 3da3190f0750bf38e6c13c691c1146f26d0d1dd8 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 29 Aug 2007 20:37:44 -0700 Subject: [PATCH] X86: Implement the movsd instruction. --HG-- extra : convert_revision : a5a73e0ddd39144d2aeeb9cc6a299516752fd4c2 --- src/arch/x86/isa/decoder/two_byte_opcodes.isa | 4 ++-- src/arch/x86/isa/insts/sse/move.py | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) 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 +}; '''