summaryrefslogtreecommitdiff
path: root/lib/Target
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2011-03-10 19:27:17 +0000
committerJim Grosbach <grosbach@apple.com>2011-03-10 19:27:17 +0000
commita4f809d8db5222708c9f4519f48916cc919fd19f (patch)
treeaee80089defd5453810b7cb166708723f96bd483 /lib/Target
parentbc908cfcc147a3494ebad86297cb6da737434064 (diff)
downloadllvm-a4f809d8db5222708c9f4519f48916cc919fd19f.tar.gz
llvm-a4f809d8db5222708c9f4519f48916cc919fd19f.tar.bz2
llvm-a4f809d8db5222708c9f4519f48916cc919fd19f.tar.xz
DMB can just be a pat referencing MCR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127423 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/ARM/ARMInstrInfo.td13
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td
index c28554baf6..6aad275086 100644
--- a/lib/Target/ARM/ARMInstrInfo.td
+++ b/lib/Target/ARM/ARMInstrInfo.td
@@ -3250,13 +3250,6 @@ def DMB : AInoP<(outs), (ins memb_opt:$opt), MiscFrm, NoItinerary,
let Inst{31-4} = 0xf57ff05;
let Inst{3-0} = opt;
}
-
-def DMB_MCR : AInoP<(outs), (ins GPR:$zero), MiscFrm, NoItinerary,
- "mcr", "\tp15, 0, $zero, c7, c10, 5",
- [(ARMMemBarrierMCR GPR:$zero)]>,
- Requires<[IsARM, HasV6]> {
- // FIXME: add encoding
-}
}
def DSB : AInoP<(outs), (ins memb_opt:$opt), MiscFrm, NoItinerary,
@@ -3915,6 +3908,12 @@ def : ARMV5TEPat<(add GPR:$acc,
(sra (mul GPR:$a, sext_16_node:$b), (i32 16))),
(SMLAWB GPR:$a, GPR:$b, GPR:$acc)>;
+
+// Pre-v7 uses MCR for synchronization barriers.
+def : ARMPat<(ARMMemBarrierMCR GPR:$zero), (MCR 15, 0, GPR:$zero, 7, 10, 5)>,
+ Requires<[IsARM, HasV6]>;
+
+
//===----------------------------------------------------------------------===//
// Thumb Support
//