summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2010-01-25 21:59:20 +0000
committerSean Callanan <scallanan@apple.com>2010-01-25 21:59:20 +0000
commit436c48485c365b399a908944ebbf4f761a4f9f6a (patch)
tree477de26557e0fa8e42d558fe3ae734f95e301d53 /lib
parente43b6c9695f2489b69aa9ea798f3c9e281c16239 (diff)
downloadllvm-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.cpp22
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);
}