forked from OSchip/llvm-project
fix a parsing problem on instructions like:
movw $8, (_cost_table_-L97$pb)+66(%eax) After the parens, we could still have a binop. llvm-svn: 94345
This commit is contained in:
parent
d3637edc4c
commit
807a3bcbbb
|
@ -331,10 +331,9 @@ bool AsmParser::ParseExpression(const MCExpr *&Res, SMLoc &EndLoc) {
|
|||
}
|
||||
|
||||
bool AsmParser::ParseParenExpression(const MCExpr *&Res, SMLoc &EndLoc) {
|
||||
if (ParseParenExpr(Res, EndLoc))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
Res = 0;
|
||||
return ParseParenExpr(Res, EndLoc) ||
|
||||
ParseBinOpRHS(1, Res, EndLoc);
|
||||
}
|
||||
|
||||
bool AsmParser::ParseAbsoluteExpression(int64_t &Res) {
|
||||
|
|
|
@ -300,8 +300,8 @@ X86Operand *X86ATTAsmParser::ParseMemOperand() {
|
|||
|
||||
// We have to disambiguate a parenthesized expression "(4+5)" from the start
|
||||
// of a memory operand with a missing displacement "(%ebx)" or "(,%eax)". The
|
||||
// only way to do this without lookahead is to eat the ( and see what is after
|
||||
// it.
|
||||
// only way to do this without lookahead is to eat the '(' and see what is
|
||||
// after it.
|
||||
const MCExpr *Disp = MCConstantExpr::Create(0, getParser().getContext());
|
||||
if (getLexer().isNot(AsmToken::LParen)) {
|
||||
SMLoc ExprEnd;
|
||||
|
|
|
@ -60,3 +60,4 @@ n:
|
|||
nop
|
||||
|
||||
|
||||
movw $8, (42)+66(%eax)
|
||||
|
|
Loading…
Reference in New Issue