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 | 03a173eb71caa9c8835288f8e89a8e765fec19cf (patch) | |
| tree | 73d0c8ed8710f0fc5162295a96a71349419a3444 /llvm/lib/Target | |
| parent | 4d4363ba567e7ca8dbe36f84d9683ac2471c46c3 (diff) | |
| download | bcm5719-llvm-03a173eb71caa9c8835288f8e89a8e765fec19cf.tar.gz bcm5719-llvm-03a173eb71caa9c8835288f8e89a8e765fec19cf.zip | |
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.
llvm-svn: 142669
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index 67a464fa8a9..0b585c1dad0 100644 --- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/llvm/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") |

