summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-11-05 22:33:53 +0000
committerJim Grosbach <grosbach@apple.com>2010-11-05 22:33:53 +0000
commitc6db8ce5dae8aa63f18809c8aa03aa35a37eb270 (patch)
tree3d4a2aaaef2b6cd6fa16147c6a9274c0f56c82e4
parent266bb5fd5b07e552f33109325c7cf5cc3b91d553 (diff)
downloadbcm5719-llvm-c6db8ce5dae8aa63f18809c8aa03aa35a37eb270.tar.gz
bcm5719-llvm-c6db8ce5dae8aa63f18809c8aa03aa35a37eb270.zip
Hook up the '.thumb_func' directive to the streamer.
llvm-svn: 118307
-rw-r--r--llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
index dffee21b74f..2ebea1ac2b4 100644
--- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
@@ -13,6 +13,7 @@
#include "llvm/MC/MCParser/MCAsmLexer.h"
#include "llvm/MC/MCParser/MCAsmParser.h"
#include "llvm/MC/MCParser/MCParsedAsmOperand.h"
+#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
@@ -904,14 +905,15 @@ bool ARMAsmParser::ParseDirectiveThumbFunc(SMLoc L) {
const AsmToken &Tok = Parser.getTok();
if (Tok.isNot(AsmToken::Identifier) && Tok.isNot(AsmToken::String))
return Error(L, "unexpected token in .thumb_func directive");
+ StringRef Name = Tok.getString();
Parser.Lex(); // Consume the identifier token.
-
if (getLexer().isNot(AsmToken::EndOfStatement))
return Error(L, "unexpected token in directive");
Parser.Lex();
- // TODO: mark symbol as a thumb symbol
- // getParser().getStreamer().Emit???();
+ // Mark symbol as a thumb symbol.
+ MCSymbol *Func = getParser().getContext().GetOrCreateSymbol(Name);
+ getParser().getStreamer().EmitThumbFunc(Func);
return false;
}
OpenPOWER on IntegriCloud