Index: lib/Target/ARM/ARM.td =================================================================== --- lib/Target/ARM/ARM.td +++ lib/Target/ARM/ARM.td @@ -334,9 +334,7 @@ "Enable Thumb2 instructions">; def FeatureNoARM : SubtargetFeature<"noarm", "NoARM", "true", - "Does not support ARM mode execution", - [ModeThumb]>; - + "Does not support ARM mode execution">; //===----------------------------------------------------------------------===// // ARM ISAa. @@ -497,11 +495,13 @@ def ARMv6m : Architecture<"armv6-m", "ARMv6m", [HasV6MOps, FeatureNoARM, + ModeThumb, FeatureDB, FeatureMClass]>; def ARMv6sm : Architecture<"armv6s-m", "ARMv6sm", [HasV6MOps, FeatureNoARM, + ModeThumb, FeatureDB, FeatureMClass]>; @@ -529,6 +529,7 @@ def ARMv7m : Architecture<"armv7-m", "ARMv7m", [HasV7Ops, FeatureThumb2, FeatureNoARM, + ModeThumb, FeatureDB, FeatureHWDivThumb, FeatureMClass]>; @@ -536,6 +537,7 @@ def ARMv7em : Architecture<"armv7e-m", "ARMv7em", [HasV7Ops, FeatureThumb2, FeatureNoARM, + ModeThumb, FeatureDB, FeatureHWDivThumb, FeatureMClass, @@ -591,6 +593,7 @@ def ARMv8mBaseline : Architecture<"armv8-m.base", "ARMv8mBaseline", [HasV8MBaselineOps, FeatureNoARM, + ModeThumb, FeatureDB, FeatureHWDivThumb, FeatureV7Clrex, @@ -601,6 +604,7 @@ def ARMv8mMainline : Architecture<"armv8-m.main", "ARMv8mMainline", [HasV8MMainlineOps, FeatureNoARM, + ModeThumb, FeatureDB, FeatureHWDivThumb, Feature8MSecExt, Index: test/CodeGen/ARM/scavenging.mir =================================================================== --- test/CodeGen/ARM/scavenging.mir +++ test/CodeGen/ARM/scavenging.mir @@ -1,4 +1,4 @@ -# RUN: llc -o - %s -mtriple=arm-arm-none-eabi -mcpu=cortex-m0 -run-pass scavenger-test | FileCheck %s +# RUN: llc -o - %s -mtriple=thumb-arm-none-eabi -mcpu=cortex-m0 -run-pass scavenger-test | FileCheck %s --- # CHECK-LABEL: name: scavengebug0 # Make sure we are not spilling/using a physreg used in the very last