[llvm-commits] [llvm] r123321 - in /llvm/trunk: lib/Target/ARM/AsmParser/ARMAsmParser.cpp test/MC/ARM/reg-list.s
Bill Wendling
isanbard at gmail.com
Wed Jan 12 13:20:59 PST 2011
Author: void
Date: Wed Jan 12 15:20:59 2011
New Revision: 123321
URL: http://llvm.org/viewvc/llvm-project?rev=123321&view=rev
Log:
Sort the register list based on the *actual* register numbers rather than the
enum values we give to them. <rdar://problem/8823730>
Added:
llvm/trunk/test/MC/ARM/reg-list.s
Modified:
llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
Modified: llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp?rev=123321&r1=123320&r2=123321&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp (original)
+++ llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp Wed Jan 12 15:20:59 2011
@@ -583,15 +583,15 @@
SmallVectorImpl<std::pair<unsigned, SMLoc> >::const_iterator
RI = Registers.begin(), RE = Registers.end();
- DenseMap<unsigned, bool> RegMap;
- RegMap[RI->first] = true;
-
- unsigned HighRegNum = RI->first;
+ unsigned HighRegNum = getARMRegisterNumbering(RI->first);
bool EmittedWarning = false;
+ DenseMap<unsigned, bool> RegMap;
+ RegMap[HighRegNum] = true;
+
for (++RI; RI != RE; ++RI) {
const std::pair<unsigned, SMLoc> &RegInfo = *RI;
- unsigned Reg = RegInfo.first;
+ unsigned Reg = getARMRegisterNumbering(RegInfo.first);
if (RegMap[Reg]) {
Error(RegInfo.second, "register duplicated in register list");
Added: llvm/trunk/test/MC/ARM/reg-list.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ARM/reg-list.s?rev=123321&view=auto
==============================================================================
--- llvm/trunk/test/MC/ARM/reg-list.s (added)
+++ llvm/trunk/test/MC/ARM/reg-list.s Wed Jan 12 15:20:59 2011
@@ -0,0 +1,8 @@
+@ RUN: llvm-mc -triple thumb-apple-darwin10 -show-encoding < %s 2> %t | FileCheck %s
+@ RUN: FileCheck --check-prefix=CHECK-WARNINGS < %t %s
+
+ push {r7, lr}
+@ CHECK-WARNINGS: register not in ascending order in register list
+
+ push {lr, r7}
+@ CHECK: push {lr, r7}
More information about the llvm-commits
mailing list