[llvm-commits] [llvm] r148134 - /llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp

Devang Patel dpatel at apple.com
Fri Jan 13 11:28:59 PST 2012


Author: dpatel
Date: Fri Jan 13 13:28:58 2012
New Revision: 148134

URL: http://llvm.org/viewvc/llvm-project?rev=148134&view=rev
Log:

Revert r148131, it was committed before it was ready.

Modified:
    llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp

Modified: llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp?rev=148134&r1=148133&r2=148134&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp (original)
+++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp Fri Jan 13 13:28:58 2012
@@ -48,7 +48,6 @@
   X86Operand *ParseOperand();
   X86Operand *ParseATTOperand();
   X86Operand *ParseIntelOperand();
-  X86Operand *ParseIntelMemOperand(StringRef TokenString, unsigned Size);
   X86Operand *ParseMemOperand(unsigned SegReg, SMLoc StartLoc);
 
   bool ParseDirectiveWord(unsigned Size, SMLoc L);
@@ -574,63 +573,58 @@
   return Size != 0;
 }
 
-/// ParseIntelMemOperand - Parse intel style memory operand.
-X86Operand *X86AsmParser::ParseIntelMemOperand(StringRef TokenString, 
-                                               unsigned Size) {
-  SMLoc Start = Parser.getTok().getLoc(), End;
-  unsigned SegReg = 0, BaseReg = 0, IndexReg = 0, Scale = 1;
-  Parser.Lex();
-  if (TokenString == "PTR")
-    Parser.Lex();
-    else {
-      Error(Start, "unexpected token!");
-      return 0;
-    }
-  
-  if (TokenString == "[")
-    Parser.Lex();
-  else {
-    Error(Start, "unexpected token!");
-    return 0;
-  }
-  
-  SMLoc LParenLoc = Parser.getTok().getLoc();
-  BaseReg = getIntelRegisterOperand(TokenString);
-  if (BaseReg == 0) {
-    Error(LParenLoc, "unexpected token!");
-    return 0;
-  }
-  Parser.Lex();
-  const MCExpr *Disp = MCConstantExpr::Create(0, getParser().getContext());
-  SMLoc ExprEnd;
-  if (getParser().ParseExpression(Disp, ExprEnd)) return 0;
-  End = Parser.getTok().getLoc();
-  if (TokenString == "]")
-    Parser.Lex();
-  if (BaseReg == 0) {
-    Error(End, "unexpected token!");
-    return 0;
-  }
-  return X86Operand::CreateMem(SegReg, Disp, BaseReg, IndexReg, Scale,
-			       Start, End, Size);
-}
-
 X86Operand *X86AsmParser::ParseIntelOperand() {
 
-  StringRef TokenString = Parser.getTok().getString();
+  const AsmToken &Tok = Parser.getTok();
   SMLoc Start = Parser.getTok().getLoc(), End;
 
   // register
-  if(unsigned RegNo = getIntelRegisterOperand(TokenString)) {
+  if(unsigned RegNo = getIntelRegisterOperand(Tok.getString())) {
     Parser.Lex();
     End = Parser.getTok().getLoc();
     return X86Operand::CreateReg(RegNo, Start, End);
   }
 
   // mem operand
+  unsigned SegReg = 0, BaseReg = 0, IndexReg = 0, Scale = 1;
+  StringRef OpStr = Tok.getString();
   unsigned Size = 0;
-  if (isIntelMemOperand(TokenString, Size))
-    ParseIntelMemOperand(TokenString, Size);
+  if (isIntelMemOperand(OpStr, Size)) {
+    Parser.Lex();
+    if (Tok.getString() == "PTR")
+      Parser.Lex();
+    else {
+      Error(Start, "unexpected token!");
+      return 0;
+    }
+
+    if (Tok.getString() == "[")
+      Parser.Lex();
+    else {
+      Error(Start, "unexpected token!");
+      return 0;
+    }
+
+    SMLoc LParenLoc = Parser.getTok().getLoc();
+    BaseReg = getIntelRegisterOperand(Tok.getString());
+    if (BaseReg == 0) {
+      Error(LParenLoc, "unexpected token!");
+      return 0;
+    }
+    Parser.Lex();
+    const MCExpr *Disp = MCConstantExpr::Create(0, getParser().getContext());
+    SMLoc ExprEnd;
+    if (getParser().ParseExpression(Disp, ExprEnd)) return 0;
+    End = Parser.getTok().getLoc();
+    if (Tok.getString() == "]")
+      Parser.Lex();
+    if (BaseReg == 0) {
+      Error(End, "unexpected token!");
+      return 0;
+    }
+    return X86Operand::CreateMem(SegReg, Disp, BaseReg, IndexReg, Scale,
+                                 Start, End, Size);
+  }
 
   // immediate.
   const MCExpr *Val;





More information about the llvm-commits mailing list