summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMInstrFormats.td
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2009-10-21 02:15:46 +0000
committerBob Wilson <bob.wilson@apple.com>2009-10-21 02:15:46 +0000
commitbd3650cc8454212bc62edc96eaba07ca1d071406 (patch)
tree58f3aee4a4c94c7ca54f507d4dc84d3f67f33c75 /llvm/lib/Target/ARM/ARMInstrFormats.td
parent93f1948caab6649d12580996ce29f39acedf7e84 (diff)
downloadbcm5719-llvm-bd3650cc8454212bc62edc96eaba07ca1d071406.tar.gz
bcm5719-llvm-bd3650cc8454212bc62edc96eaba07ca1d071406.zip
Leave some NEON instruction encoding bits unspecified instead of setting
a default value of zero. This is important for decoding the instructions. Patch by Johnny Chen, with some changes from me, too. llvm-svn: 84730
Diffstat (limited to 'llvm/lib/Target/ARM/ARMInstrFormats.td')
-rw-r--r--llvm/lib/Target/ARM/ARMInstrFormats.td17
1 files changed, 14 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrFormats.td b/llvm/lib/Target/ARM/ARMInstrFormats.td
index 15f8dff8fbb..8225fd741bb 100644
--- a/llvm/lib/Target/ARM/ARMInstrFormats.td
+++ b/llvm/lib/Target/ARM/ARMInstrFormats.td
@@ -1262,15 +1262,26 @@ class N2V<bits<2> op24_23, bits<2> op21_20, bits<2> op19_18, bits<2> op17_16,
let Inst{4} = op4;
}
+// NEON Vector Duplicate (scalar).
+// Inst{19-16} is specified by subclasses.
+class N2VDup<bits<2> op24_23, bits<2> op21_20, bits<5> op11_7, bit op6, bit op4,
+ dag oops, dag iops, InstrItinClass itin,
+ string asm, string cstr, list<dag> pattern>
+ : NDataI<oops, iops, itin, asm, cstr, pattern> {
+ let Inst{24-23} = op24_23;
+ let Inst{21-20} = op21_20;
+ let Inst{11-7} = op11_7;
+ let Inst{6} = op6;
+ let Inst{4} = op4;
+}
+
// NEON 2 vector register with immediate.
-class N2VImm<bit op24, bit op23, bits<6> op21_16, bits<4> op11_8, bit op7,
- bit op6, bit op4,
+class N2VImm<bit op24, bit op23, bits<4> op11_8, bit op7, bit op6, bit op4,
dag oops, dag iops, InstrItinClass itin,
string asm, string cstr, list<dag> pattern>
: NDataI<oops, iops, itin, asm, cstr, pattern> {
let Inst{24} = op24;
let Inst{23} = op23;
- let Inst{21-16} = op21_16;
let Inst{11-8} = op11_8;
let Inst{7} = op7;
let Inst{6} = op6;
OpenPOWER on IntegriCloud