summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
diff options
context:
space:
mode:
authorAmaury de la Vieuville <amaury.dlv@gmail.com>2013-06-24 09:14:54 +0000
committerAmaury de la Vieuville <amaury.dlv@gmail.com>2013-06-24 09:14:54 +0000
commit07c3e159d8fffc8b16bcd52cc395a78007c62910 (patch)
treec4a316ee04967a2cbfb79ff8c032b00130570d6d /lib/Target/ARM/Disassembler/ARMDisassembler.cpp
parent98a9b72e8c56dc13a2617de84503a3d78352789c (diff)
downloadllvm-07c3e159d8fffc8b16bcd52cc395a78007c62910.tar.gz
llvm-07c3e159d8fffc8b16bcd52cc395a78007c62910.tar.bz2
llvm-07c3e159d8fffc8b16bcd52cc395a78007c62910.tar.xz
ARM: rGPR is meant to be unpredictable, not undefined
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184706 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
-rw-r--r--lib/Target/ARM/Disassembler/ARMDisassembler.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Target/ARM/Disassembler/ARMDisassembler.cpp b/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
index bc874f4b46..6aaf4c06b3 100644
--- a/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
+++ b/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
@@ -916,8 +916,11 @@ static DecodeStatus DecodetcGPRRegisterClass(MCInst &Inst, unsigned RegNo,
static DecodeStatus DecoderGPRRegisterClass(MCInst &Inst, unsigned RegNo,
uint64_t Address, const void *Decoder) {
- if (RegNo == 13 || RegNo == 15) return MCDisassembler::Fail;
- return DecodeGPRRegisterClass(Inst, RegNo, Address, Decoder);
+ DecodeStatus S = MCDisassembler::Success;
+ if (RegNo == 13 || RegNo == 15)
+ S = MCDisassembler::SoftFail;
+ Check(S, DecodeGPRRegisterClass(Inst, RegNo, Address, Decoder));
+ return S;
}
static const uint16_t SPRDecoderTable[] = {