aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-10-06 20:36:55 +0000
committerJim Grosbach <grosbach@apple.com>2010-10-06 20:36:55 +0000
commitf63de95cc76ce3c5235263555941f7cf515c3f2f (patch)
tree2aecb7991029ec15506f5fb025f2d3d762fa7854 /lib
parentee8673d9f4117f7f6e62b218e49c8d221d8ca746 (diff)
downloadexternal_llvm-f63de95cc76ce3c5235263555941f7cf515c3f2f.zip
external_llvm-f63de95cc76ce3c5235263555941f7cf515c3f2f.tar.gz
external_llvm-f63de95cc76ce3c5235263555941f7cf515c3f2f.tar.bz2
Add a 'pattern' arg to the ARM PseudoNeonI class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115831 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/ARM/ARMInstrFormats.td4
-rw-r--r--lib/Target/ARM/ARMInstrNEON.td12
2 files changed, 9 insertions, 7 deletions
diff --git a/lib/Target/ARM/ARMInstrFormats.td b/lib/Target/ARM/ARMInstrFormats.td
index 1d87ae4..263f151 100644
--- a/lib/Target/ARM/ARMInstrFormats.td
+++ b/lib/Target/ARM/ARMInstrFormats.td
@@ -1550,11 +1550,13 @@ class PseudoNLdSt<dag oops, dag iops, InstrItinClass itin, string cstr>
list<Predicate> Predicates = [HasNEON];
}
-class PseudoNeonI<dag oops, dag iops, InstrItinClass itin, string cstr>
+class PseudoNeonI<dag oops, dag iops, InstrItinClass itin, string cstr,
+ list<dag> pattern>
: InstARM<AddrModeNone, Size4Bytes, IndexModeNone, Pseudo, NeonDomain, cstr,
itin> {
let OutOperandList = oops;
let InOperandList = !con(iops, (ins pred:$p));
+ let Pattern = pattern;
list<Predicate> Predicates = [HasNEON];
}
diff --git a/lib/Target/ARM/ARMInstrNEON.td b/lib/Target/ARM/ARMInstrNEON.td
index bf24d0a..eaf2f79 100644
--- a/lib/Target/ARM/ARMInstrNEON.td
+++ b/lib/Target/ARM/ARMInstrNEON.td
@@ -3816,11 +3816,11 @@ def VTBL4
} // hasExtraSrcRegAllocReq = 1
def VTBL2Pseudo
- : PseudoNeonI<(outs DPR:$dst), (ins QPR:$tbl, DPR:$src), IIC_VTB2, "">;
+ : PseudoNeonI<(outs DPR:$dst), (ins QPR:$tbl, DPR:$src), IIC_VTB2, "", []>;
def VTBL3Pseudo
- : PseudoNeonI<(outs DPR:$dst), (ins QQPR:$tbl, DPR:$src), IIC_VTB3, "">;
+ : PseudoNeonI<(outs DPR:$dst), (ins QQPR:$tbl, DPR:$src), IIC_VTB3, "", []>;
def VTBL4Pseudo
- : PseudoNeonI<(outs DPR:$dst), (ins QQPR:$tbl, DPR:$src), IIC_VTB4, "">;
+ : PseudoNeonI<(outs DPR:$dst), (ins QQPR:$tbl, DPR:$src), IIC_VTB4, "", []>;
// VTBX : Vector Table Extension
def VTBX1
@@ -3849,13 +3849,13 @@ def VTBX4
def VTBX2Pseudo
: PseudoNeonI<(outs DPR:$dst), (ins DPR:$orig, QPR:$tbl, DPR:$src),
- IIC_VTBX2, "$orig = $dst">;
+ IIC_VTBX2, "$orig = $dst", []>;
def VTBX3Pseudo
: PseudoNeonI<(outs DPR:$dst), (ins DPR:$orig, QQPR:$tbl, DPR:$src),
- IIC_VTBX3, "$orig = $dst">;
+ IIC_VTBX3, "$orig = $dst", []>;
def VTBX4Pseudo
: PseudoNeonI<(outs DPR:$dst), (ins DPR:$orig, QQPR:$tbl, DPR:$src),
- IIC_VTBX4, "$orig = $dst">;
+ IIC_VTBX4, "$orig = $dst", []>;
//===----------------------------------------------------------------------===//
// NEON instructions for single-precision FP math