diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-08-29 20:37:44 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-08-29 20:37:44 -0700 |
commit | 3da3190f0750bf38e6c13c691c1146f26d0d1dd8 (patch) | |
tree | d7dfe37d35293095fd684485f82a0a01322a8dc8 /src/arch/x86/isa | |
parent | f0b20ff9703c2443535bc3b39334a957d44723d5 (diff) | |
download | gem5-3da3190f0750bf38e6c13c691c1146f26d0d1dd8.tar.xz |
X86: Implement the movsd instruction.
--HG--
extra : convert_revision : a5a73e0ddd39144d2aeeb9cc6a299516752fd4c2
Diffstat (limited to 'src/arch/x86/isa')
-rw-r--r-- | src/arch/x86/isa/decoder/two_byte_opcodes.isa | 4 | ||||
-rw-r--r-- | 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 +}; ''' |