summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/insts/simd128/floating_point/data_transfer
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-08-17 20:22:56 -0700
committerGabe Black <gblack@eecs.umich.edu>2009-08-17 20:22:56 -0700
commit90dc1abd0b95efc37f0bb12ed1dddd22e0d5d914 (patch)
tree4267485ef235067dbb85811168371f6fed9eeb2e /src/arch/x86/isa/insts/simd128/floating_point/data_transfer
parent90786e43fc8ba16d6e1941ca996e82e94f186e5e (diff)
downloadgem5-90dc1abd0b95efc37f0bb12ed1dddd22e0d5d914.tar.xz
X86: Implement the instructions that move sign bits.
Diffstat (limited to 'src/arch/x86/isa/insts/simd128/floating_point/data_transfer')
-rw-r--r--src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move_mask.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move_mask.py b/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move_mask.py
index abd1c7327..5c5fb81d2 100644
--- a/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move_mask.py
+++ b/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move_mask.py
@@ -54,6 +54,15 @@
# Authors: Gabe Black
microcode = '''
-# MOVMSKPS
-# MOVMSKPD
+def macroop MOVMSKPS_R_XMM {
+ limm reg, 0
+ movsign reg, xmmlm, size=4, ext=0
+ movsign reg, xmmhm, size=4, ext=1
+};
+
+def macroop MOVMSKPD_R_XMM {
+ limm reg, 0
+ movsign reg, xmmlm, size=8, ext=0
+ movsign reg, xmmhm, size=8, ext=1
+};
'''