diff options
| author | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2018-06-22 08:48:13 +0000 |
|---|---|---|
| committer | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2018-06-22 08:48:13 +0000 |
| commit | 8d2f1565b77caa47d6f38b7878bada45cdbfe1c5 (patch) | |
| tree | eef1c235084403fb3410e16b22ac0da62e5a03d2 /llvm/lib/Target/ARM | |
| parent | 3f8e7a3dbcb7dc7c28ee294b6fdaa0bd1f8abeec (diff) | |
| download | bcm5719-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.td | 9 |
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, |

