[llvm-commits] [llvm] r80929 - in /llvm/trunk: include/llvm/MC/MCAsmLexer.h lib/Target/X86/AsmParser/X86AsmParser.cpp tools/llvm-mc/AsmLexer.cpp tools/llvm-mc/AsmLexer.h tools/llvm-mc/llvm-mc.cpp

Daniel Dunbar daniel at zuster.org
Tue Sep 15 16:45:47 PDT 2009


Hi Kevin,

One comment...

On Thu, Sep 3, 2009 at 10:15 AM, Kevin Enderby <enderby at apple.com> wrote:
> Author: enderby
> Date: Thu Sep  3 12:15:07 2009
> New Revision: 80929
>
> URL: http://llvm.org/viewvc/llvm-project?rev=80929&view=rev
> Log:
> Removed the non-target independent AsmToken::Register enum constant
> from MCAsmLexer.h in preparation of supporting other targets.  Changed the
> X86AsmParser code to reflect this by removing AsmLexer::LexPercent and looking
> for AsmToken::Percent when parsing in places that used AsmToken::Register.
> Then changed X86ATTAsmParser::ParseRegister to parse out registers as an
> AsmToken::Percent followed by an AsmToken::Identifier.

> ==============================================================================
> --- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp (original)
> +++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp Thu Sep  3 12:15:07 2009
> @@ -230,20 +230,23 @@
>
>
>  bool X86ATTAsmParser::ParseRegister(X86Operand &Op) {
> +  const AsmToken &TokPercent = getLexer().getTok();
> +  assert(TokPercent.is(AsmToken::Percent) && "Invalid token kind!");
> +  getLexer().Lex(); // Eat percent token.
> +
>   const AsmToken &Tok = getLexer().getTok();
> -  assert(Tok.is(AsmToken::Register) && "Invalid token kind!");
> +  assert(TokPercent.is(AsmToken::Identifier) && "Invalid token kind!");

This should be a branch not an assert (so a user error is detected), I
think code like 'mov $0, %%eax' will assert currently.

 - Daniel




More information about the llvm-commits mailing list