From fdac6365ab1a4a84ad26de2955c79b5f9bf9801e Mon Sep 17 00:00:00 2001 From: Roman Divacky Date: Thu, 28 Oct 2010 16:22:58 +0000 Subject: [PATCH] Implement .equ directive as a synonym to .set. llvm-svn: 117553 --- llvm/lib/MC/MCParser/AsmParser.cpp | 12 ++++++------ llvm/test/MC/AsmParser/directive_set.s | 5 +++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index a7045c5cd597..aa0f9f0ced9b 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -183,7 +183,7 @@ private: bool ParseDirectiveFill(); // ".fill" bool ParseDirectiveSpace(); // ".space" bool ParseDirectiveZero(); // ".zero" - bool ParseDirectiveSet(); // ".set" + bool ParseDirectiveSet(StringRef IDVal); // ".set" or ".equ" bool ParseDirectiveOrg(); // ".org" // ".align{,32}", ".p2align{,w,l}" bool ParseDirectiveAlign(bool IsPow2, unsigned ValueSize); @@ -913,8 +913,8 @@ bool AsmParser::ParseStatement() { // Otherwise, we have a normal instruction or directive. if (IDVal[0] == '.') { // Assembler features - if (IDVal == ".set") - return ParseDirectiveSet(); + if (IDVal == ".set" || IDVal == ".equ") + return ParseDirectiveSet(IDVal); // Data directives @@ -1275,14 +1275,14 @@ bool AsmParser::ParseIdentifier(StringRef &Res) { /// ParseDirectiveSet: /// ::= .set identifier ',' expression -bool AsmParser::ParseDirectiveSet() { +bool AsmParser::ParseDirectiveSet(StringRef IDVal) { StringRef Name; if (ParseIdentifier(Name)) - return TokError("expected identifier after '.set' directive"); + return TokError("expected identifier after '" + Twine(IDVal.str()) + "'"); if (getLexer().isNot(AsmToken::Comma)) - return TokError("unexpected token in '.set'"); + return TokError("unexpected token in '" + Twine(IDVal.str()) + "'"); Lex(); return ParseAssignment(Name); diff --git a/llvm/test/MC/AsmParser/directive_set.s b/llvm/test/MC/AsmParser/directive_set.s index f1fc30a85df1..69abce0db2ff 100644 --- a/llvm/test/MC/AsmParser/directive_set.s +++ b/llvm/test/MC/AsmParser/directive_set.s @@ -5,3 +5,8 @@ TEST0: .set a, 0 +# CHECK: TEST1: +# CHECK: a = 0 +TEST1: + .equ a, 0 + -- GitLab