diff options
author | Owen Anderson <resistor@mac.com> | 2011-10-21 18:43:28 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2011-10-21 18:43:28 +0000 |
commit | 7784f1d2d8b76a7eb9dd9b3fef7213770605532d (patch) | |
tree | 1377c7365e27823e1d74f7d8a7e97ec1c9e48eee | |
parent | e2fa64ef22321c5771667a8f00dca737ecb0799c (diff) | |
download | external_llvm-7784f1d2d8b76a7eb9dd9b3fef7213770605532d.zip external_llvm-7784f1d2d8b76a7eb9dd9b3fef7213770605532d.tar.gz external_llvm-7784f1d2d8b76a7eb9dd9b3fef7213770605532d.tar.bz2 |
Don't automatically set the "fc" bits on MSR instructions if the user didn't ask for them. This is a divergence from gas' behavior, but it is correct per the documentation and allows us to forge ahead with roundtrip testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142669 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index 67a464f..0b585c1 100644 --- a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -2588,9 +2588,13 @@ parseMSRMaskOperand(SmallVectorImpl<MCParsedAsmOperand*> &Operands) { } else // No match for special register. return MatchOperand_NoMatch; - // Special register without flags are equivalent to "fc" flags. - if (!FlagsVal) - FlagsVal = 0x9; + // Special register without flags is NOT equivalent to "fc" flags. + // NOTE: This is a divergence from gas' behavior. Uncommenting the following + // two lines would enable gas compatibility at the expense of breaking + // round-tripping. + // + // if (!FlagsVal) + // FlagsVal = 0x9; // Bit 4: Special Reg (cpsr, apsr => 0; spsr => 1) if (SpecReg == "spsr") |