From 9c656450d65034c4cd3597fff61ef17376cff090 Mon Sep 17 00:00:00 2001 From: Kevin Enderby Date: Thu, 10 Sep 2009 20:51:44 +0000 Subject: Added the ParseInstruction() hook for target specific assembler directives so that things like .word can be parsed as target specific. Moved parsing .word out of AsmParser.cpp into X86AsmParser.cpp as it is 2 bytes on X86 and 4 bytes for other targets that support the .word directive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81461 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llvm-mc/AsmParser.cpp | 7 +++++-- tools/llvm-mc/llvm-mc.cpp | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'tools/llvm-mc') diff --git a/tools/llvm-mc/AsmParser.cpp b/tools/llvm-mc/AsmParser.cpp index f51f43adc1..b1e8e9ae40 100644 --- a/tools/llvm-mc/AsmParser.cpp +++ b/tools/llvm-mc/AsmParser.cpp @@ -591,10 +591,9 @@ bool AsmParser::ParseStatement() { if (IDVal == ".asciz") return ParseDirectiveAscii(true); - // FIXME: Target hooks for size? Also for "word", "hword". if (IDVal == ".byte") return ParseDirectiveValue(1); - if (IDVal == ".short" || IDVal == ".word") + if (IDVal == ".short") return ParseDirectiveValue(2); if (IDVal == ".long") return ParseDirectiveValue(4); @@ -685,6 +684,10 @@ bool AsmParser::ParseStatement() { if (IDVal == ".loc") return ParseDirectiveLoc(IDLoc); + // Target hook for parsing target specific directives. + if (!getTargetParser().ParseDirective(ID)) + return false; + Warning(IDLoc, "ignoring directive for now"); EatToEndOfStatement(); return false; diff --git a/tools/llvm-mc/llvm-mc.cpp b/tools/llvm-mc/llvm-mc.cpp index bf3c01794b..e5d99be9e9 100644 --- a/tools/llvm-mc/llvm-mc.cpp +++ b/tools/llvm-mc/llvm-mc.cpp @@ -16,6 +16,7 @@ #include "llvm/MC/MCCodeEmitter.h" #include "llvm/MC/MCSectionMachO.h" #include "llvm/MC/MCStreamer.h" +#include "llvm/MC/MCAsmLexer.h" #include "llvm/ADT/OwningPtr.h" #include "llvm/CodeGen/AsmPrinter.h" #include "llvm/Support/CommandLine.h" -- cgit v1.2.3