summaryrefslogtreecommitdiff
path: root/lib/MC
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@mips.com>2012-07-05 19:09:33 +0000
committerAkira Hatanaka <ahatanaka@mips.com>2012-07-05 19:09:33 +0000
commit3b02d95d6375439c3281c84a9620ecabc633e1a6 (patch)
treeb99dce4b804effb5f50bf078ee96d588d1f503db /lib/MC
parentb0c76d72c3fd7878f87995a93c9724b723af4432 (diff)
downloadllvm-3b02d95d6375439c3281c84a9620ecabc633e1a6.tar.gz
llvm-3b02d95d6375439c3281c84a9620ecabc633e1a6.tar.bz2
llvm-3b02d95d6375439c3281c84a9620ecabc633e1a6.tar.xz
Enable target dependent directive parsing to hook before standard parser in
AsmParser::ParseStatement. Patch by Vladimir Medic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159768 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC')
-rw-r--r--lib/MC/MCParser/AsmParser.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/MC/MCParser/AsmParser.cpp b/lib/MC/MCParser/AsmParser.cpp
index 744514af6c..a559158c6c 100644
--- a/lib/MC/MCParser/AsmParser.cpp
+++ b/lib/MC/MCParser/AsmParser.cpp
@@ -1167,6 +1167,11 @@ bool AsmParser::ParseStatement() {
// Otherwise, we have a normal instruction or directive.
if (IDVal[0] == '.' && IDVal != ".") {
+
+ // Target hook for parsing target specific directives.
+ if (!getTargetParser().ParseDirective(ID))
+ return false;
+
// Assembler features
if (IDVal == ".set" || IDVal == ".equ")
return ParseDirectiveSet(IDVal, true);
@@ -1292,9 +1297,6 @@ bool AsmParser::ParseStatement() {
if (Handler.first)
return (*Handler.second)(Handler.first, IDVal, IDLoc);
- // Target hook for parsing target specific directives.
- if (!getTargetParser().ParseDirective(ID))
- return false;
return Error(IDLoc, "unknown directive");
}