From: Kevin Enderby Date: Thu, 19 Dec 2013 22:24:09 +0000 (+0000) Subject: Revert my change to the X86 assembler for intel syntax to work with X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=ddc2347cc7c07438553bce6163b3e69113338ff4;p=oota-llvm.git 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 --- diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index fe533965515..15dcc5cc39b 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); } diff --git a/test/MC/X86/intel-syntax-directional-label.s b/test/MC/X86/intel-syntax-directional-label.s deleted file mode 100644 index 1ed16733bbb..00000000000 --- a/test/MC/X86/intel-syntax-directional-label.s +++ /dev/null @@ -1,16 +0,0 @@ -// RUN: llvm-mc -triple x86_64-apple-darwin -x86-asm-syntax=intel %s | FileCheck %s -// rdar://14961158 - .text - .align 16 - .globl FUNCTION_NAME - .private_extern FUNCTION_NAME -FUNCTION_NAME: - .intel_syntax - cmp rdi, 1 - jge 1f -// CHECK: jge "L11" - add rdi, 2 -1: -// CHECK: "L11": - add rdi, 1 - ret