diff options
| author | Wesley Peck <peckw@wesleypeck.com> | 2010-12-20 21:18:04 +0000 |
|---|---|---|
| committer | Wesley Peck <peckw@wesleypeck.com> | 2010-12-20 21:18:04 +0000 |
| commit | ae58e7b17955216d048fe8a918b3a3fc0ae96df1 (patch) | |
| tree | 3255d314077ebb9aa3d21d896471f6555b3692be /llvm/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp | |
| parent | 55184ddd357c4a43db33bfded6dfeeaa96436312 (diff) | |
| download | bcm5719-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.cpp | 7 |
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: |

