[PATCH] D26120: [Cortex-M0] Atomic lowering
Weiming Zhao via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 31 14:53:19 PDT 2016
weimingz added a comment.
Hi Eli,
I think the problem is the feature for armv6m is not well defined.
ARMv6m is mostly Thumb1, but it also supports 5 32-bit instrs: DL, DMB, DSB. ISM. MRS, MSR
In ARM.td, FeatureDB has already been defined for Armv6m.
However, when existing code actually checks for availability of atomic feature (fence + ldrex/strex), if the target is Thumb but not supports ARMv8mBaseline, then it assumes no such feature.
For example: in ARMISelLowering.cpp::1043
if (Subtarget->hasAnyDataBarrier() &&
(!Subtarget->isThumb() || Subtarget->hasV8MBaselineOps())
Repository:
rL LLVM
https://reviews.llvm.org/D26120
More information about the llvm-commits
mailing list