diff options
Diffstat (limited to 'disassembler/disassembler_mips.cc')
| -rw-r--r-- | disassembler/disassembler_mips.cc | 36 | 
1 files changed, 29 insertions, 7 deletions
| diff --git a/disassembler/disassembler_mips.cc b/disassembler/disassembler_mips.cc index c2f23aa523..2d15f6f41e 100644 --- a/disassembler/disassembler_mips.cc +++ b/disassembler/disassembler_mips.cc @@ -139,6 +139,7 @@ static const MipsInstruction gMipsInstructions[] = {    // SPECIAL2    { kSpecial2Mask | 0x7ff, (28 << kOpcodeShift) | 2, "mul", "DST" },    { kSpecial2Mask | 0x7ff, (28 << kOpcodeShift) | 32, "clz", "DS" }, +  { kSpecial2Mask | 0x7ff, (28 << kOpcodeShift) | 33, "clo", "DS" },    { kSpecial2Mask | 0xffff, (28 << kOpcodeShift) | 0, "madd", "ST" },    { kSpecial2Mask | 0xffff, (28 << kOpcodeShift) | 1, "maddu", "ST" },    { kSpecial2Mask | 0xffff, (28 << kOpcodeShift) | 2, "mul", "DST" }, @@ -148,13 +149,34 @@ static const MipsInstruction gMipsInstructions[] = {    // SPECIAL3    { kSpecial3Mask | 0x3f, (31 << kOpcodeShift) | 3, "dext", "TSAZ", }, -  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, (31 << kOpcodeShift) | (16 << 6) | 32, "seb", "DT", }, -  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, (31 << kOpcodeShift) | (24 << 6) | 32, "seh", "DT", }, -  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, (31 << kOpcodeShift) | 32, "bitswap", "DT", }, -  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, (31 << kOpcodeShift) | 36, "dbitswap", "DT", }, -  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, (31 << kOpcodeShift) | (2 << 6) | 36, "dsbh", "DT", }, -  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, (31 << kOpcodeShift) | (5 << 6) | 36, "dshd", "DT", }, -  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, (31 << kOpcodeShift) | (2 << 6) | 32, "wsbh", "DT", }, +  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, +    (31 << kOpcodeShift) | (16 << 6) | 32, +    "seb", +    "DT", }, +  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, +    (31 << kOpcodeShift) | (24 << 6) | 32, +    "seh", +    "DT", }, +  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, +    (31 << kOpcodeShift) | 32, +    "bitswap", +    "DT", }, +  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, +    (31 << kOpcodeShift) | 36, +    "dbitswap", +    "DT", }, +  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, +    (31 << kOpcodeShift) | (2 << 6) | 36, +    "dsbh", +    "DT", }, +  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, +    (31 << kOpcodeShift) | (5 << 6) | 36, +    "dshd", +    "DT", }, +  { kSpecial3Mask | (0x1f << 21) | (0x1f << 6) | 0x3f, +    (31 << kOpcodeShift) | (2 << 6) | 32, +    "wsbh", +    "DT", },    { kSpecial3Mask | 0x7f, (31 << kOpcodeShift) | 0x26, "sc", "Tl", },    { kSpecial3Mask | 0x7f, (31 << kOpcodeShift) | 0x27, "scd", "Tl", },    { kSpecial3Mask | 0x7f, (31 << kOpcodeShift) | 0x36, "ll", "Tl", }, |