Index: lib/Target/ARM/AsmParser/ARMAsmParser.cpp =================================================================== --- lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -483,7 +483,8 @@ } bool hasARM() const { - return !getSTI().getFeatureBits()[ARM::FeatureNoARM]; + return !getSTI().getFeatureBits()[ARM::FeatureNoARM] && + !getSTI().getTargetTriple().isOSWindows(); } bool hasDSP() const { Index: test/MC/ARM/arm-thumb-cpus.s =================================================================== --- test/MC/ARM/arm-thumb-cpus.s +++ test/MC/ARM/arm-thumb-cpus.s @@ -19,6 +19,9 @@ @ RUN: not llvm-mc -show-encoding -triple=armv6sm-eabi < %s 2>&1 \ @ RUN: | FileCheck %s --check-prefix=CHECK-THUMB-ONLY +@ RUN: not llvm-mc -show-encoding -triple=thumbv7-win32 < %s 2>&1 \ +@ RUN: | FileCheck %s --check-prefix=CHECK-THUMB-ONLY + @ Make sure correct diagnostics are given for CPUs without support for @ one or other of the execution states. .thumb