aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/ARMInstrVFP.td
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-10-12 21:22:40 +0000
committerJim Grosbach <grosbach@apple.com>2010-10-12 21:22:40 +0000
commit499e886fe6c0ad02e0079734733dd7dde03d2940 (patch)
treee2e294271e66246a11638dd4d0d1c677051640dd /lib/Target/ARM/ARMInstrVFP.td
parent2ab36d350293c77fc8941ce1023e4899df7e3a82 (diff)
downloadexternal_llvm-499e886fe6c0ad02e0079734733dd7dde03d2940.zip
external_llvm-499e886fe6c0ad02e0079734733dd7dde03d2940.tar.gz
external_llvm-499e886fe6c0ad02e0079734733dd7dde03d2940.tar.bz2
Encoding for ARM-mode VADD.F32 instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116338 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMInstrVFP.td')
-rw-r--r--lib/Target/ARM/ARMInstrVFP.td17
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/Target/ARM/ARMInstrVFP.td b/lib/Target/ARM/ARMInstrVFP.td
index 2434400..1d29ff8 100644
--- a/lib/Target/ARM/ARMInstrVFP.td
+++ b/lib/Target/ARM/ARMInstrVFP.td
@@ -146,9 +146,20 @@ def VADDD : ADbI<0b11100, 0b11, 0, 0, (outs DPR:$dst), (ins DPR:$a, DPR:$b),
IIC_fpALU64, "vadd", ".f64\t$dst, $a, $b",
[(set DPR:$dst, (fadd DPR:$a, (f64 DPR:$b)))]>;
-def VADDS : ASbIn<0b11100, 0b11, 0, 0, (outs SPR:$dst), (ins SPR:$a, SPR:$b),
- IIC_fpALU32, "vadd", ".f32\t$dst, $a, $b",
- [(set SPR:$dst, (fadd SPR:$a, SPR:$b))]>;
+def VADDS : ASbIn<0b11100, 0b11, 0, 0, (outs SPR:$Sd), (ins SPR:$Sn, SPR:$Sm),
+ IIC_fpALU32, "vadd", ".f32\t$Sd, $Sn, $Sm",
+ [(set SPR:$Sd, (fadd SPR:$Sn, SPR:$Sm))]> {
+ bits<5> Sd;
+ bits<5> Sn;
+ bits<5> Sm;
+
+ let Inst{3-0} = Sm{4-1};
+ let Inst{5} = Sm{0};
+ let Inst{19-16} = Sn{4-1};
+ let Inst{7} = Sn{0};
+ let Inst{15-12} = Sd{4-1};
+ let Inst{22} = Sd{0};
+}
// These are encoded as unary instructions.
let Defs = [FPSCR] in {