diff options
author | Kevin Enderby <enderby@apple.com> | 2013-12-19 22:24:09 +0000 |
---|---|---|
committer | Kevin Enderby <enderby@apple.com> | 2013-12-19 22:24:09 +0000 |
commit | ddc2347cc7c07438553bce6163b3e69113338ff4 (patch) | |
tree | 9d56c8658a43025ee1e7252ab053e4e1174b77b8 /lib | |
parent | 86f49d5c017e8b7f059271b3acbcceed0ba83f37 (diff) | |
download | llvm-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.cpp | 36 |
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); } |