summaryrefslogtreecommitdiff
path: root/lib/Target/MBlaze/Disassembler
diff options
context:
space:
mode:
authorWesley Peck <peckw@wesleypeck.com>2010-12-20 21:18:04 +0000
committerWesley Peck <peckw@wesleypeck.com>2010-12-20 21:18:04 +0000
commitd66a32c35f06067a2c361e6b92ba86a09ec5cdc6 (patch)
treed99e4ad63af14ed35f8cd51921c33bdb776821e2 /lib/Target/MBlaze/Disassembler
parentd149186e156fdd44e3cca988949cf3e5e6940863 (diff)
downloadllvm-d66a32c35f06067a2c361e6b92ba86a09ec5cdc6.tar.gz
llvm-d66a32c35f06067a2c361e6b92ba86a09ec5cdc6.tar.bz2
llvm-d66a32c35f06067a2c361e6b92ba86a09ec5cdc6.tar.xz
Teach the MBlaze disassembler to disassemble special purpose registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122269 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/MBlaze/Disassembler')
-rw-r--r--lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp b/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp
index b2a2474422..3379ac2169 100644
--- a/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp
+++ b/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp
@@ -69,8 +69,7 @@ static unsigned getRB(uint32_t insn) {
}
static int64_t getRS(uint32_t insn) {
- int16_t val = (insn & 0x3FFF);
- return val;
+ return MBlazeRegisterInfo::getSpecialRegisterFromNumbering(insn&0x3FFF);
}
static int64_t getIMM(uint32_t insn) {
@@ -606,12 +605,12 @@ bool MBlazeDisassembler::getInstruction(MCInst &instr,
case MBlazeII::FRCS:
instr.addOperand(MCOperand::CreateReg(getRD(insn)));
- instr.addOperand(MCOperand::CreateImm(getRS(insn)));
+ instr.addOperand(MCOperand::CreateReg(getRS(insn)));
break;
case MBlazeII::FCRCS:
+ instr.addOperand(MCOperand::CreateReg(getRS(insn)));
instr.addOperand(MCOperand::CreateReg(getRA(insn)));
- instr.addOperand(MCOperand::CreateImm(getRS(insn)));
break;
case MBlazeII::FCRCX: