aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2011-09-06 18:46:23 +0000
committerJim Grosbach <grosbach@apple.com>2011-09-06 18:46:23 +0000
commit98447daa9559d5bf7816f084581b5ca073d316f6 (patch)
treeb4c2f0d386049e3bdde1e639a60e0e1f4887685a
parent96428cea3d87aaac2e520a0df8f51c857ebf9cbd (diff)
downloadexternal_llvm-98447daa9559d5bf7816f084581b5ca073d316f6.zip
external_llvm-98447daa9559d5bf7816f084581b5ca073d316f6.tar.gz
external_llvm-98447daa9559d5bf7816f084581b5ca073d316f6.tar.bz2
ARM .code directive should always go to the streamer.
Even if there's no mode switch performed, the .code directive should still be sent to the output streamer. Otherwise, for example, an output asm stream is not equivalent to the input stream which generated it (a dependency on the input target triple arm vs. thumb is introduced which was not originally there). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139155 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/ARM/AsmParser/ARMAsmParser.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
index 0c4bbac..6668fc9 100644
--- a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
@@ -3797,15 +3797,13 @@ bool ARMAsmParser::parseDirectiveCode(SMLoc L) {
Parser.Lex();
if (Val == 16) {
- if (!isThumb()) {
+ if (!isThumb())
SwitchMode();
- getParser().getStreamer().EmitAssemblerFlag(MCAF_Code16);
- }
+ getParser().getStreamer().EmitAssemblerFlag(MCAF_Code16);
} else {
- if (isThumb()) {
+ if (isThumb())
SwitchMode();
- getParser().getStreamer().EmitAssemblerFlag(MCAF_Code32);
- }
+ getParser().getStreamer().EmitAssemblerFlag(MCAF_Code32);
}
return false;