mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-23 02:29:18 +00:00
ARM asm parser, just issue a warning for a duplicate reg in a list.
For better 'gas' compatibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146185 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cf405ba7a6
commit
a62d11ea94
@ -2596,6 +2596,7 @@ parseRegisterList(SmallVectorImpl<MCParsedAsmOperand*> &Operands) {
|
|||||||
Parser.Lex(); // Eat the comma.
|
Parser.Lex(); // Eat the comma.
|
||||||
RegLoc = Parser.getTok().getLoc();
|
RegLoc = Parser.getTok().getLoc();
|
||||||
int OldReg = Reg;
|
int OldReg = Reg;
|
||||||
|
const AsmToken RegTok = Parser.getTok();
|
||||||
Reg = tryParseRegister();
|
Reg = tryParseRegister();
|
||||||
if (Reg == -1)
|
if (Reg == -1)
|
||||||
return Error(RegLoc, "register expected");
|
return Error(RegLoc, "register expected");
|
||||||
@ -2609,8 +2610,13 @@ parseRegisterList(SmallVectorImpl<MCParsedAsmOperand*> &Operands) {
|
|||||||
if (!RC->contains(Reg))
|
if (!RC->contains(Reg))
|
||||||
return Error(RegLoc, "invalid register in register list");
|
return Error(RegLoc, "invalid register in register list");
|
||||||
// List must be monotonically increasing.
|
// List must be monotonically increasing.
|
||||||
if (getARMRegisterNumbering(Reg) <= getARMRegisterNumbering(OldReg))
|
if (getARMRegisterNumbering(Reg) < getARMRegisterNumbering(OldReg))
|
||||||
return Error(RegLoc, "register list not in ascending order");
|
return Error(RegLoc, "register list not in ascending order");
|
||||||
|
if (getARMRegisterNumbering(Reg) == getARMRegisterNumbering(OldReg)) {
|
||||||
|
Warning(RegLoc, "duplicated register (" + RegTok.getString() +
|
||||||
|
") in register list");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// VFP register lists must also be contiguous.
|
// VFP register lists must also be contiguous.
|
||||||
// It's OK to use the enumeration values directly here rather, as the
|
// It's OK to use the enumeration values directly here rather, as the
|
||||||
// VFP register classes have the enum sorted properly.
|
// VFP register classes have the enum sorted properly.
|
||||||
|
Loading…
Reference in New Issue
Block a user