summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM
diff options
context:
space:
mode:
authorSjoerd Meijer <sjoerd.meijer@arm.com>2018-06-22 08:48:13 +0000
committerSjoerd Meijer <sjoerd.meijer@arm.com>2018-06-22 08:48:13 +0000
commit8d2f1565b77caa47d6f38b7878bada45cdbfe1c5 (patch)
treeeef1c235084403fb3410e16b22ac0da62e5a03d2 /llvm/lib/Target/ARM
parent3f8e7a3dbcb7dc7c28ee294b6fdaa0bd1f8abeec (diff)
downloadbcm5719-llvm-8d2f1565b77caa47d6f38b7878bada45cdbfe1c5.tar.gz
bcm5719-llvm-8d2f1565b77caa47d6f38b7878bada45cdbfe1c5.zip
[ARM] ARMv6m and v8m.baseline strict align
This sets target feature FeatureStrictAlign for Armv6-m and Armv8-m.baseline, because it has no support for unaligned accesses. It looks like we always pass target feature "+strict-align" from Clang, so this is not a user facing problem, but querying the subtarget (in e.g. llc) for unaligned access support is incorrect. Differential Revision: https://reviews.llvm.org/D48437 llvm-svn: 335326
Diffstat (limited to 'llvm/lib/Target/ARM')
-rw-r--r--llvm/lib/Target/ARM/ARM.td9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/ARM.td b/llvm/lib/Target/ARM/ARM.td
index 7b551c40408..fe744b0bc10 100644
--- a/llvm/lib/Target/ARM/ARM.td
+++ b/llvm/lib/Target/ARM/ARM.td
@@ -526,13 +526,15 @@ def ARMv6m : Architecture<"armv6-m", "ARMv6m", [HasV6MOps,
FeatureNoARM,
ModeThumb,
FeatureDB,
- FeatureMClass]>;
+ FeatureMClass,
+ FeatureStrictAlign]>;
def ARMv6sm : Architecture<"armv6s-m", "ARMv6sm", [HasV6MOps,
FeatureNoARM,
ModeThumb,
FeatureDB,
- FeatureMClass]>;
+ FeatureMClass,
+ FeatureStrictAlign]>;
def ARMv7a : Architecture<"armv7-a", "ARMv7a", [HasV7Ops,
FeatureNEON,
@@ -642,7 +644,8 @@ def ARMv8mBaseline : Architecture<"armv8-m.base", "ARMv8mBaseline",
FeatureV7Clrex,
Feature8MSecExt,
FeatureAcquireRelease,
- FeatureMClass]>;
+ FeatureMClass,
+ FeatureStrictAlign]>;
def ARMv8mMainline : Architecture<"armv8-m.main", "ARMv8mMainline",
[HasV8MMainlineOps,
OpenPOWER on IntegriCloud