diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2010-10-03 20:23:13 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2010-10-03 20:23:13 +0000 |
commit | d32d85e5ba2de223c853b2e1c9bd57a39ebab4ce (patch) | |
tree | 02cc9c60433d5bf7bc53cd5e9804f16387b4f3b2 | |
parent | ece290226a2019f1e2e1b8767fbeee930eee9b49 (diff) |
Add 3DNowA instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115477 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/X86/X86Instr3DNow.td | 8 | ||||
-rw-r--r-- | test/MC/X86/3DNow.s | 16 |
2 files changed, 22 insertions, 2 deletions
diff --git a/lib/Target/X86/X86Instr3DNow.td b/lib/Target/X86/X86Instr3DNow.td index c8b7987889..45d1c6bc9d 100644 --- a/lib/Target/X86/X86Instr3DNow.td +++ b/lib/Target/X86/X86Instr3DNow.td @@ -69,5 +69,9 @@ def PREFETCHW : I3DNow<0x0D, MRM1m, (outs), (ins i16mem:$addr), "prefetchw $addr", []>; } - -// TODO: Add support for the "3DNowA" instructions. +// "3DNowA" instructions +defm PF2IW : I3DNow_binop_rm<0x1C, "pf2iw">; +defm PI2FW : I3DNow_binop_rm<0x0C, "pi2fw">; +defm PFNACC : I3DNow_binop_rm<0x8A, "pfnacc">; +defm PFPNACC : I3DNow_binop_rm<0x8E, "pfpnacc">; +defm PSWAPD : I3DNow_binop_rm<0xBB, "pswapd">; diff --git a/test/MC/X86/3DNow.s b/test/MC/X86/3DNow.s index b66385dabf..4dc68aecf4 100644 --- a/test/MC/X86/3DNow.s +++ b/test/MC/X86/3DNow.s @@ -74,3 +74,19 @@ femms // CHECK: prefetchw (%rax) # encoding: [0x0f,0x0d,0x08] prefetch (%rax) prefetchw (%rax) + + +// CHECK: pf2iw %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x1c] +pf2iw %mm2, %mm1 + +// CHECK: pi2fw %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x0c] +pi2fw %mm2, %mm1 + +// CHECK: pfnacc %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x8a] +pfnacc %mm2, %mm1 + +// CHECK: pfpnacc %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x8e] +pfpnacc %mm2, %mm1 + +// CHECK: pswapd %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xbb] +pswapd %mm2, %mm1 |