summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/insts
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
commitd9970f139acfb2a3d19854d082cc30000bf09d35 (patch)
tree5288397239af86a90c25191fbde05cfb3d32ce13 /src/arch/x86/isa/insts
parent75528a497c1980a55256e068473da8e0d684c8ab (diff)
downloadgem5-d9970f139acfb2a3d19854d082cc30000bf09d35.tar.xz
X86: Implement the mask move instructions.
Diffstat (limited to 'src/arch/x86/isa/insts')
-rw-r--r--src/arch/x86/isa/insts/simd128/integer/data_transfer/move_non_temporal.py10
-rw-r--r--src/arch/x86/isa/insts/simd64/integer/data_transfer/move_non_temporal.py7
2 files changed, 15 insertions, 2 deletions
diff --git a/src/arch/x86/isa/insts/simd128/integer/data_transfer/move_non_temporal.py b/src/arch/x86/isa/insts/simd128/integer/data_transfer/move_non_temporal.py
index 413dddb84..c8df3b403 100644
--- a/src/arch/x86/isa/insts/simd128/integer/data_transfer/move_non_temporal.py
+++ b/src/arch/x86/isa/insts/simd128/integer/data_transfer/move_non_temporal.py
@@ -55,5 +55,13 @@
microcode = '''
# MOVNTDQ
-# MASKMOVDQU
+
+def macroop MASKMOVDQU_XMM_XMM {
+ ldfp ufp1, ds, [1, t0, rdi], dataSize=8
+ ldfp ufp2, ds, [1, t0, rdi], 8, dataSize=8
+ maskmov ufp1, xmml, xmmlm, size=1
+ maskmov ufp2, xmmh, xmmhm, size=1
+ stfp ufp1, ds, [1, t0, rdi], dataSize=8
+ stfp ufp2, ds, [1, t0, rdi], 8, dataSize=8
+};
'''
diff --git a/src/arch/x86/isa/insts/simd64/integer/data_transfer/move_non_temporal.py b/src/arch/x86/isa/insts/simd64/integer/data_transfer/move_non_temporal.py
index edd55d35a..f43d75e68 100644
--- a/src/arch/x86/isa/insts/simd64/integer/data_transfer/move_non_temporal.py
+++ b/src/arch/x86/isa/insts/simd64/integer/data_transfer/move_non_temporal.py
@@ -55,5 +55,10 @@
microcode = '''
# MOVNTQ
-# MASKMOVQ
+
+def macroop MASKMOVQ_MMX_MMX {
+ ldfp ufp1, ds, [1, t0, rdi], dataSize=8
+ maskmov ufp1, mmx, mmxm, size=1
+ stfp ufp1, ds, [1, t0, rdi], dataSize=8
+};
'''