diff options
author | Jim Grosbach <grosbach@apple.com> | 2011-09-06 18:46:23 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2011-09-06 18:46:23 +0000 |
commit | 98447daa9559d5bf7816f084581b5ca073d316f6 (patch) | |
tree | b4c2f0d386049e3bdde1e639a60e0e1f4887685a | |
parent | 96428cea3d87aaac2e520a0df8f51c857ebf9cbd (diff) | |
download | external_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.cpp | 10 |
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; |