summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMISelLowering.cpp
diff options
context:
space:
mode:
authorBradley Smith <bradley.smith@arm.com>2016-01-15 10:26:51 +0000
committerBradley Smith <bradley.smith@arm.com>2016-01-15 10:26:51 +0000
commit433c22e35cabf8d5db0731aaadff649491d70487 (patch)
treec7af04c43d2a12029a1781f72a2a1cc4f2c5a7c5 /llvm/lib/Target/ARM/ARMISelLowering.cpp
parenta1189106d5a1b9e9ff57ea6fa53c24e891f1d09c (diff)
downloadbcm5719-llvm-433c22e35cabf8d5db0731aaadff649491d70487.tar.gz
bcm5719-llvm-433c22e35cabf8d5db0731aaadff649491d70487.zip
[ARM] Add ARMv8-A semaphore/atomic instructions to ARMv8-M Baseline/Mainline
llvm-svn: 257882
Diffstat (limited to 'llvm/lib/Target/ARM/ARMISelLowering.cpp')
-rw-r--r--llvm/lib/Target/ARM/ARMISelLowering.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp
index 65355628b74..bca26e68cb1 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.cpp
+++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp
@@ -839,7 +839,8 @@ ARMTargetLowering::ARMTargetLowering(const TargetMachine &TM,
// non-atomic form.
if (TM.Options.ThreadModel == ThreadModel::Single)
setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Expand);
- else if (Subtarget->hasAnyDataBarrier() && !Subtarget->isThumb1Only()) {
+ else if (Subtarget->hasAnyDataBarrier() && (!Subtarget->isThumb() ||
+ Subtarget->hasV8MBaselineOps())) {
// ATOMIC_FENCE needs custom lowering; the others should have been expanded
// to ldrex/strex loops already.
setOperationAction(ISD::ATOMIC_FENCE, MVT::Other, Custom);
OpenPOWER on IntegriCloud