summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMInstrFormats.td
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2009-11-19 19:20:17 +0000
committerJohnny Chen <johnny.chen@apple.com>2009-11-19 19:20:17 +0000
commitb3b8209d775ca5400bf863899a5f53e57995bd58 (patch)
tree88400834967cce7ecbe90a2bbb08dbf3b80e1353 /llvm/lib/Target/ARM/ARMInstrFormats.td
parent50909c0595c9f029798f4b3818fa8b2a7e412ef0 (diff)
downloadbcm5719-llvm-b3b8209d775ca5400bf863899a5f53e57995bd58.tar.gz
bcm5719-llvm-b3b8209d775ca5400bf863899a5f53e57995bd58.zip
Added NLdStLN which is similar to NLdSt with the exception that op7_4 is not
fully specified at this level. Subclasses of NLdStLN can specify selective bit(s) for Inst{7-4}, as is done for VLD[234]LN* and VST[234]LN* inside ARMInstrNEON.td. llvm-svn: 89377
Diffstat (limited to 'llvm/lib/Target/ARM/ARMInstrFormats.td')
-rw-r--r--llvm/lib/Target/ARM/ARMInstrFormats.td11
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrFormats.td b/llvm/lib/Target/ARM/ARMInstrFormats.td
index 83b5cb4cac9..292fa8fcda1 100644
--- a/llvm/lib/Target/ARM/ARMInstrFormats.td
+++ b/llvm/lib/Target/ARM/ARMInstrFormats.td
@@ -1245,6 +1245,17 @@ class NLdSt<bit op23, bits<2> op21_20, bits<4> op11_8, bits<4> op7_4,
let Inst{7-4} = op7_4;
}
+// With selective bit(s) from op7_4 specified by subclasses.
+class NLdStLN<bit op23, bits<2> op21_20, bits<4> op11_8,
+ dag oops, dag iops, InstrItinClass itin,
+ string asm, string cstr, list<dag> pattern>
+ : NeonI<oops, iops, AddrMode6, IndexModeNone, itin, asm, cstr, pattern> {
+ let Inst{31-24} = 0b11110100;
+ let Inst{23} = op23;
+ let Inst{21-20} = op21_20;
+ let Inst{11-8} = op11_8;
+}
+
class NDataI<dag oops, dag iops, InstrItinClass itin,
string asm, string cstr, list<dag> pattern>
: NeonI<oops, iops, AddrModeNone, IndexModeNone, itin, asm, cstr, pattern> {
OpenPOWER on IntegriCloud