summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp
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
commitae58e7b17955216d048fe8a918b3a3fc0ae96df1 (patch)
tree3255d314077ebb9aa3d21d896471f6555b3692be /llvm/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp
parent55184ddd357c4a43db33bfded6dfeeaa96436312 (diff)
downloadbcm5719-llvm-ae58e7b17955216d048fe8a918b3a3fc0ae96df1.tar.gz
bcm5719-llvm-ae58e7b17955216d048fe8a918b3a3fc0ae96df1.zip
Teach the MBlaze disassembler to disassemble special purpose registers.
llvm-svn: 122269
Diffstat (limited to 'llvm/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp')
-rw-r--r--llvm/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp b/llvm/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp
index b2a24744228..3379ac21697 100644
--- a/llvm/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp
+++ b/llvm/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:
OpenPOWER on IntegriCloud