Implemented the dialect decision logic for the X86
authorSean Callanan <scallanan@apple.com>
Mon, 25 Jan 2010 21:59:20 +0000 (21:59 +0000)
committerSean Callanan <scallanan@apple.com>
Mon, 25 Jan 2010 21:59:20 +0000 (21:59 +0000)
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

lib/Target/X86/AsmParser/X86AsmLexer.cpp

index 1a62044a60ef8e10bca11fd00524b6ec010ef6a2..123735cace31a7f37acf99b958c5426431da1e9f 100644 (file)
@@ -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);
 }