diff options
author | Lena Djokic <Lena.Djokic@mips.com> | 2017-12-13 12:09:42 +0100 |
---|---|---|
committer | Lena Djokic <Lena.Djokic@mips.com> | 2018-01-03 17:40:01 +0100 |
commit | a556e6ba500ba54d1ca90d6a947dd962d9c287c7 (patch) | |
tree | f9e747c6218ca741c7b0783a9d10dedf22dd36b3 /disassembler | |
parent | b0ddceb337f614dc2600d19b82fb4a6596aa7d4c (diff) |
MIPS: InstructionCodeGeneratorMIPS*::DivRemByPowerOfTwo()
Replace [d]sll+[d]srl with [d]ins on R2+.
Change-Id: I7587e46c47c8ce413d81a5c6c29d91e32a14d855
Diffstat (limited to 'disassembler')
-rw-r--r-- | disassembler/disassembler_mips.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/disassembler/disassembler_mips.cc b/disassembler/disassembler_mips.cc index 2c800e7af3..b5f5d6ff10 100644 --- a/disassembler/disassembler_mips.cc +++ b/disassembler/disassembler_mips.cc @@ -177,7 +177,9 @@ static const MipsInstruction gMipsInstructions[] = { { kSpecial3Mask | 0x3f, (31 << kOpcodeShift), "ext", "TSAZ", }, { kSpecial3Mask | 0x3f, (31 << kOpcodeShift) | 3, "dext", "TSAZ", }, { kSpecial3Mask | 0x3f, (31 << kOpcodeShift) | 4, "ins", "TSAz", }, + { kSpecial3Mask | 0x3f, (31 << kOpcodeShift) | 5, "dinsm", "TSAJ", }, { kSpecial3Mask | 0x3f, (31 << kOpcodeShift) | 6, "dinsu", "TSFz", }, + { kSpecial3Mask | 0x3f, (31 << kOpcodeShift) | 7, "dins", "TSAz", }, { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, (31 << kOpcodeShift) | (16 << 6) | 32, "seb", @@ -584,6 +586,9 @@ size_t DisassemblerMips::Dump(std::ostream& os, const uint8_t* instr_ptr) { case 'i': // Sign-extended lower 16-bit immediate. args << static_cast<int16_t>(instruction & 0xffff); break; + case 'J': // sz (dinsm size). + args << (rd - sa + 33); + break; case 'j': // sa value for lsa/dlsa. args << (sa + 1); break; |