diff options
author | Wesley Peck <peckw@wesleypeck.com> | 2011-04-11 21:35:21 +0000 |
---|---|---|
committer | Wesley Peck <peckw@wesleypeck.com> | 2011-04-11 21:35:21 +0000 |
commit | e53060fdf436ae4a88f1d27328803f7d82811120 (patch) | |
tree | 34513c70f07033bdaec7be434a04e08941dc3bc6 /lib/Target/MBlaze/MBlazeRegisterInfo.cpp | |
parent | cc88595bce813464f4dc0c8351f7311bb233a3e2 (diff) | |
download | llvm-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.cpp | 20 |
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; } |