summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-mc/AsmParser.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-06-30 01:49:52 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-06-30 01:49:52 +0000
commitbd4bf3d4f794561f5869f33f574b6ddc4fe336bf (patch)
treecaaa9425ec4a186a0347b855f82d5855d4a9fe5c /llvm/tools/llvm-mc/AsmParser.cpp
parent7013ca5434416861eab0f04038087bbe2daa7f77 (diff)
downloadbcm5719-llvm-bd4bf3d4f794561f5869f33f574b6ddc4fe336bf.tar.gz
bcm5719-llvm-bd4bf3d4f794561f5869f33f574b6ddc4fe336bf.zip
llvm-mc: Evaluation for relocatable expressions.
llvm-svn: 74496
Diffstat (limited to 'llvm/tools/llvm-mc/AsmParser.cpp')
-rw-r--r--llvm/tools/llvm-mc/AsmParser.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/tools/llvm-mc/AsmParser.cpp b/llvm/tools/llvm-mc/AsmParser.cpp
index 9414f9918c6..9330728ef62 100644
--- a/llvm/tools/llvm-mc/AsmParser.cpp
+++ b/llvm/tools/llvm-mc/AsmParser.cpp
@@ -153,6 +153,18 @@ bool AsmParser::ParseAbsoluteExpression(int64_t &Res) {
return false;
}
+bool AsmParser::ParseRelocatableExpression(MCValue &Res) {
+ AsmExpr *Expr;
+
+ if (ParseExpression(Expr))
+ return true;
+
+ if (!Expr->EvaluateAsRelocatable(Ctx, Res))
+ return TokError("expected relocatable expression");
+
+ return false;
+}
+
static unsigned getBinOpPrecedence(asmtok::TokKind K,
AsmBinaryExpr::Opcode &Kind) {
switch (K) {
OpenPOWER on IntegriCloud