diff options
author | Sean Callanan <scallanan@apple.com> | 2010-01-25 21:59:20 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2010-01-25 21:59:20 +0000 |
commit | 436c48485c365b399a908944ebbf4f761a4f9f6a (patch) | |
tree | 477de26557e0fa8e42d558fe3ae734f95e301d53 /lib | |
parent | e43b6c9695f2489b69aa9ea798f3c9e281c16239 (diff) | |
download | llvm-436c48485c365b399a908944ebbf4f761a4f9f6a.tar.gz llvm-436c48485c365b399a908944ebbf4f761a4f9f6a.tar.bz2 llvm-436c48485c365b399a908944ebbf4f761a4f9f6a.tar.xz |
Implemented the dialect decision logic for the X86
TargetAsmLexer. Dialect-specific lexing code will
be placed in the functions LexTokenATT() and
LexTokenIntel().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94456 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/X86/AsmParser/X86AsmLexer.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/Target/X86/AsmParser/X86AsmLexer.cpp b/lib/Target/X86/AsmParser/X86AsmLexer.cpp index 1a62044a60..123735cace 100644 --- a/lib/Target/X86/AsmParser/X86AsmLexer.cpp +++ b/lib/Target/X86/AsmParser/X86AsmLexer.cpp @@ -9,6 +9,7 @@ #include "llvm/Target/TargetAsmLexer.h" #include "llvm/Target/TargetRegistry.h" +#include "llvm/MC/MCAsmInfo.h" #include "llvm/MC/MCParser/MCAsmLexer.h" #include "llvm/MC/MCParser/MCParsedAsmOperand.h" #include "X86.h" @@ -19,8 +20,21 @@ namespace { class X86AsmLexer : public TargetAsmLexer { const MCAsmInfo &AsmInfo; + + AsmToken LexTokenATT(); + AsmToken LexTokenIntel(); protected: - AsmToken LexToken(); + AsmToken LexToken() { + switch (AsmInfo.getAssemblerDialect()) { + default: + SetError(SMLoc(), "Unhandled dialect"); + return AsmToken(AsmToken::Error, "", 0); + case 0: + return LexTokenATT(); + case 1: + return LexTokenIntel(); + } + } public: X86AsmLexer(const Target &T, const MCAsmInfo &MAI) : TargetAsmLexer(T), AsmInfo(MAI) { @@ -29,7 +43,11 @@ public: } -AsmToken X86AsmLexer::LexToken() { +AsmToken X86AsmLexer::LexTokenATT() { + return AsmToken(AsmToken::Error, "", 0); +} + +AsmToken X86AsmLexer::LexTokenIntel() { return AsmToken(AsmToken::Error, "", 0); } |