summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2013-12-19 22:24:09 +0000
committerKevin Enderby <enderby@apple.com>2013-12-19 22:24:09 +0000
commitddc2347cc7c07438553bce6163b3e69113338ff4 (patch)
tree9d56c8658a43025ee1e7252ab053e4e1174b77b8 /lib
parent86f49d5c017e8b7f059271b3acbcceed0ba83f37 (diff)
downloadllvm-ddc2347cc7c07438553bce6163b3e69113338ff4.tar.gz
llvm-ddc2347cc7c07438553bce6163b3e69113338ff4.tar.bz2
llvm-ddc2347cc7c07438553bce6163b3e69113338ff4.tar.xz
Revert my change to the X86 assembler for intel syntax to work with
directional labels. Because it doesn't work for windows :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197731 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/X86/AsmParser/X86AsmParser.cpp36
1 files changed, 2 insertions, 34 deletions
diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp
index fe53396551..15dcc5cc39 100644
--- a/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -1329,37 +1329,12 @@ bool X86AsmParser::ParseIntelExpression(IntelExprStateMachine &SM, SMLoc &End) {
}
return Error(Tok.getLoc(), "Unexpected identifier!");
}
- case AsmToken::Integer: {
+ case AsmToken::Integer:
if (isParsingInlineAsm() && SM.getAddImmPrefix())
InstInfo->AsmRewrites->push_back(AsmRewrite(AOK_ImmPrefix,
Tok.getLoc()));
- // Look for 'b' or 'f' following an Integer as a directional label
- SMLoc Loc = getTok().getLoc();
- int64_t IntVal = getTok().getIntVal();
- End = consumeToken();
- UpdateLocLex = false;
- if (getLexer().getKind() == AsmToken::Identifier) {
- StringRef IDVal = getTok().getString();
- if (IDVal == "f" || IDVal == "b") {
- MCSymbol *Sym =
- getContext().GetDirectionalLocalSymbol(IntVal,
- IDVal == "f" ? 1 : 0);
- MCSymbolRefExpr::VariantKind Variant = MCSymbolRefExpr::VK_None;
- const MCExpr *Val =
- MCSymbolRefExpr::Create(Sym, Variant, getContext());
- if (IDVal == "b" && Sym->isUndefined())
- return Error(Loc, "invalid reference to undefined symbol");
- StringRef Identifier = Sym->getName();
- SM.onIdentifierExpr(Val, Identifier);
- End = consumeToken();
- } else {
- SM.onInteger(IntVal);
- }
- } else {
- SM.onInteger(IntVal);
- }
+ SM.onInteger(Tok.getIntVal());
break;
- }
case AsmToken::Plus: SM.onPlus(); break;
case AsmToken::Minus: SM.onMinus(); break;
case AsmToken::Star: SM.onStar(); break;
@@ -1709,13 +1684,6 @@ X86Operand *X86AsmParser::ParseIntelOperand() {
}
if (getLexer().isNot(AsmToken::LBrac)) {
- // If a directional label (ie. 1f or 2b) was parsed above from
- // ParseIntelExpression() then SM.getSym() was set to a pointer to
- // to the MCExpr with the directional local symbol and this is a
- // memory operand not an immediate operand.
- if (SM.getSym())
- return X86Operand::CreateMem(SM.getSym(), Start, End, Size);
-
const MCExpr *ImmExpr = MCConstantExpr::Create(Imm, getContext());
return X86Operand::CreateImm(ImmExpr, Start, End);
}