changeset 2aec993cdd8f in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=2aec993cdd8f
description:
X86: Implement the mask move instructions.
diffstat:
3 files changed, 17 insertions(+), 4 deletions(-)
src/arch/x86/isa/decoder/two_byte_opcodes.isa |
4 ++--
src/arch/x86/isa/insts/simd128/integer/data_transfer/move_non_temporal.py |
10 +++++++++-
src/arch/x86/isa/insts/simd64/integer/data_transfer/move_non_temporal.py |
7 ++++++-
diffs (54 lines):
diff -r a5dbea7ba3f9 -r 2aec993cdd8f
src/arch/x86/isa/decoder/two_byte_opcodes.isa
--- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa Mon Aug 17 20:22:56
2009 -0700
+++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa Mon Aug 17 20:22:56
2009 -0700
@@ -1067,7 +1067,7 @@
0x4: PMULUDQ(Pq,Qq);
0x5: PMADDWD(Pq,Qq);
0x6: PSADBW(Pq,Qq);
- 0x7: WarnUnimpl::maskmovq_Pq_PRq();
+ 0x7: MASKMOVQ(Pq,PRq);
default: UD2();
}
// operand size (0x66)
@@ -1078,7 +1078,7 @@
0x4: PMULUDQ(Vo,Wo);
0x5: PMADDWD(Vo,Wo);
0x6: PSADBW(Vo,Wo);
- 0x7: WarnUnimpl::maskmovdqu_Vo_VRo();
+ 0x7: MASKMOVDQU(Vo,VRo);
default: UD2();
}
// repne (0xF2)
diff -r a5dbea7ba3f9 -r 2aec993cdd8f
src/arch/x86/isa/insts/simd128/integer/data_transfer/move_non_temporal.py
--- a/src/arch/x86/isa/insts/simd128/integer/data_transfer/move_non_temporal.py
Mon Aug 17 20:22:56 2009 -0700
+++ b/src/arch/x86/isa/insts/simd128/integer/data_transfer/move_non_temporal.py
Mon Aug 17 20:22:56 2009 -0700
@@ -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 -r a5dbea7ba3f9 -r 2aec993cdd8f
src/arch/x86/isa/insts/simd64/integer/data_transfer/move_non_temporal.py
--- a/src/arch/x86/isa/insts/simd64/integer/data_transfer/move_non_temporal.py
Mon Aug 17 20:22:56 2009 -0700
+++ b/src/arch/x86/isa/insts/simd64/integer/data_transfer/move_non_temporal.py
Mon Aug 17 20:22:56 2009 -0700
@@ -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
+};
'''
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev