Fix ARMAsmParser::ParseOperand() to allow it to parse . as a branch target and

directional local labels like 1f and 2b.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123393 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Kevin Enderby 2011-01-13 20:32:36 +00:00
parent bc8d5f11e7
commit 67b212e03b

View File

@ -840,10 +840,12 @@ bool ARMAsmParser::ParseOperand(SmallVectorImpl<MCParsedAsmOperand*> &Operands){
default: default:
Error(Parser.getTok().getLoc(), "unexpected token in operand"); Error(Parser.getTok().getLoc(), "unexpected token in operand");
return true; return true;
case AsmToken::Identifier: { case AsmToken::Identifier:
if (!TryParseRegisterWithWriteBack(Operands)) if (!TryParseRegisterWithWriteBack(Operands))
return false; return false;
// Fall though for the Identifier case that is not a register
case AsmToken::Integer: // things like 1f and 2b as a branch targets
case AsmToken::Dot: { // . as a branch target
// This was not a register so parse other operands that start with an // This was not a register so parse other operands that start with an
// identifier (like labels) as expressions and create them as immediates. // identifier (like labels) as expressions and create them as immediates.
const MCExpr *IdVal; const MCExpr *IdVal;