summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2011-10-21 18:43:28 +0000
committerOwen Anderson <resistor@mac.com>2011-10-21 18:43:28 +0000
commit03a173eb71caa9c8835288f8e89a8e765fec19cf (patch)
tree73d0c8ed8710f0fc5162295a96a71349419a3444 /llvm/lib/Target
parent4d4363ba567e7ca8dbe36f84d9683ac2471c46c3 (diff)
downloadbcm5719-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.cpp10
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")
OpenPOWER on IntegriCloud