summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2013-06-26 22:23:32 +0000
committerChad Rosier <mcrosier@apple.com>2013-06-26 22:23:32 +0000
commit253777fdc36e9aea608774605c74d535b9374ad3 (patch)
treed371d9e9c48ca3a788bbe104fe5d7f093f2b915d /llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
parente23f26bf943d67534f633c84d6dfd9ee5a8c593b (diff)
downloadbcm5719-llvm-253777fdc36e9aea608774605c74d535b9374ad3.tar.gz
bcm5719-llvm-253777fdc36e9aea608774605c74d535b9374ad3.zip
[Mips Disassembler] Have the DecodeCCRRegisterClass function use the getReg
function to lookup the proper tablegen'ed register enumeration. Previously, it was using the encoded value directly. llvm-svn: 185026
Diffstat (limited to 'llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp')
-rw-r--r--llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp b/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
index 4af67037e97..b6b265cd1ed 100644
--- a/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
+++ b/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
@@ -405,7 +405,10 @@ static DecodeStatus DecodeCCRRegisterClass(MCInst &Inst,
unsigned RegNo,
uint64_t Address,
const void *Decoder) {
- Inst.addOperand(MCOperand::CreateReg(RegNo));
+ if (RegNo > 31)
+ return MCDisassembler::Fail;
+ unsigned Reg = getReg(Decoder, Mips::CCRRegClassID, RegNo);
+ Inst.addOperand(MCOperand::CreateReg(Reg));
return MCDisassembler::Success;
}
OpenPOWER on IntegriCloud