summaryrefslogtreecommitdiff
path: root/lib/Target/MBlaze/MBlazeRegisterInfo.cpp
diff options
context:
space:
mode:
authorWesley Peck <peckw@wesleypeck.com>2011-04-11 21:35:21 +0000
committerWesley Peck <peckw@wesleypeck.com>2011-04-11 21:35:21 +0000
commite53060fdf436ae4a88f1d27328803f7d82811120 (patch)
tree34513c70f07033bdaec7be434a04e08941dc3bc6 /lib/Target/MBlaze/MBlazeRegisterInfo.cpp
parentcc88595bce813464f4dc0c8351f7311bb233a3e2 (diff)
downloadllvm-e53060fdf436ae4a88f1d27328803f7d82811120.tar.gz
llvm-e53060fdf436ae4a88f1d27328803f7d82811120.tar.bz2
llvm-e53060fdf436ae4a88f1d27328803f7d82811120.tar.xz
Don't crash on invalid instructions when disassembling MBlaze code.
This fixes http://llvm.org/bugs/show_bug.cgi?id=9653 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129303 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/MBlaze/MBlazeRegisterInfo.cpp')
-rw-r--r--lib/Target/MBlaze/MBlazeRegisterInfo.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/Target/MBlaze/MBlazeRegisterInfo.cpp b/lib/Target/MBlaze/MBlazeRegisterInfo.cpp
index fa9140d792..ed8511df5e 100644
--- a/lib/Target/MBlaze/MBlazeRegisterInfo.cpp
+++ b/lib/Target/MBlaze/MBlazeRegisterInfo.cpp
@@ -181,6 +181,26 @@ unsigned MBlazeRegisterInfo::getSpecialRegisterFromNumbering(unsigned Reg) {
return 0; // Not reached
}
+bool MBlazeRegisterInfo::isRegister(unsigned Reg) {
+ return Reg <= 31;
+}
+
+bool MBlazeRegisterInfo::isSpecialRegister(unsigned Reg) {
+ switch (Reg) {
+ case 0x0000 : case 0x0001 : case 0x0003 : case 0x0005 :
+ case 0x0007 : case 0x000B : case 0x000D : case 0x1000 :
+ case 0x1001 : case 0x1002 : case 0x1003 : case 0x1004 :
+ case 0x2000 : case 0x2001 : case 0x2002 : case 0x2003 :
+ case 0x2004 : case 0x2005 : case 0x2006 : case 0x2007 :
+ case 0x2008 : case 0x2009 : case 0x200A : case 0x200B :
+ return true;
+
+ default:
+ return false;
+ }
+ return false; // Not reached
+}
+
unsigned MBlazeRegisterInfo::getPICCallReg() {
return MBlaze::R20;
}