[llvm-commits] [llvm] r124229 - /llvm/trunk/lib/MC/MCParser/AsmParser.cpp

Bill Wendling isanbard at gmail.com
Tue Jan 25 13:26:41 PST 2011


Author: void
Date: Tue Jan 25 15:26:41 2011
New Revision: 124229

URL: http://llvm.org/viewvc/llvm-project?rev=124229&view=rev
Log:
Add support for parsing a Real value. It stores the Real value as its binary
encoding. It's up to the individual back-ends to convert it to their preferred
representation when printing.

Modified:
    llvm/trunk/lib/MC/MCParser/AsmParser.cpp

Modified: llvm/trunk/lib/MC/MCParser/AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/AsmParser.cpp?rev=124229&r1=124228&r2=124229&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCParser/AsmParser.cpp (original)
+++ llvm/trunk/lib/MC/MCParser/AsmParser.cpp Tue Jan 25 15:26:41 2011
@@ -563,6 +563,13 @@
     }
     return false;
   }
+  case AsmToken::Real: {
+    APFloat RealVal(APFloat::IEEEdouble, getTok().getString());
+    int64_t IntVal = RealVal.bitcastToAPInt().getSExtValue();
+    Res = MCConstantExpr::Create(IntVal, getContext());
+    Lex(); // Eat token.
+    return false;
+  }
   case AsmToken::Dot: {
     // This is a '.' reference, which references the current PC.  Emit a
     // temporary label to the streamer and refer to it.
@@ -573,7 +580,6 @@
     Lex(); // Eat identifier.
     return false;
   }
-
   case AsmToken::LParen:
     Lex(); // Eat the '('.
     return ParseParenExpr(Res, EndLoc);





More information about the llvm-commits mailing list