From d32d85e5ba2de223c853b2e1c9bd57a39ebab4ce Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Sun, 3 Oct 2010 20:23:13 +0000 Subject: [PATCH] Add 3DNowA instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115477 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86Instr3DNow.td | 8 ++++++-- 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 c8b79878899..45d1c6bc9d2 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 b66385dabf8..4dc68aecf4f 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