summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/mips/mips3dsm.cpp
diff options
context:
space:
mode:
author mooglyguy <therealmogminer@gmail.com>2018-06-28 18:16:55 +0200
committer mooglyguy <therealmogminer@gmail.com>2018-06-28 18:24:16 +0200
commiteb5a8a3dc85b2cb3572687633b07bf93292ead62 (patch)
treec81c264a72bb19ebde9f758c406ff17b6d01905a /src/devices/cpu/mips/mips3dsm.cpp
parent85a16dfb9d98283b6dfccb4b1b915fd19c432361 (diff)
-ps2sony: Fleshing out the skeleton driver. [Ryan Holtz]
* Added ps2timer device to encapsulate Playstation 2 timers. * Temporarily hacked R5900 core to always have scratchpad RAM mapped at 0x70000000. * Added reference counting to divtlb so that it does not unmap pages that are still shared with other entries. * Added a considerable amount of logging to ps2sony.cpp. -mips3: Added basic Emotion Engine support. [Ryan Holtz] * Added S bit to TLB mapping. * Added support for VSUB, VIADD, VSQI, VISWR, VOR, LQ, SQ, MFSA, MTSA, MFHI1, MFLO1, MULT1, DIV1, DIVU1, PEXTLW, PADDUW, PMFHI, PMFLO, PCPYLD, PCPYUD, SQC2, LQC2 opcodes. [Ryan Holtz]
Diffstat (limited to 'src/devices/cpu/mips/mips3dsm.cpp')
-rw-r--r--src/devices/cpu/mips/mips3dsm.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/devices/cpu/mips/mips3dsm.cpp b/src/devices/cpu/mips/mips3dsm.cpp
index 0ee0bd36058..c93e8166344 100644
--- a/src/devices/cpu/mips/mips3dsm.cpp
+++ b/src/devices/cpu/mips/mips3dsm.cpp
@@ -799,11 +799,13 @@ uint32_t ee_disassembler::dasm_extra_base(uint32_t pc, uint32_t op, std::ostream
uint32_t ee_disassembler::dasm_extra_special(uint32_t pc, uint32_t op, std::ostream &stream)
{
const int rs = (op >> 21) & 31;
+ const int rd = (op >> 11) & 31;
switch (op & 63)
{
- case 0x29: util::stream_format(stream, "mtsa %s", reg[rs]); break;
- default: util::stream_format(stream, "dc.l $%08x [invalid]", op); break;
+ case 0x28: util::stream_format(stream, "mfsa %s", reg[rd]); break;
+ case 0x29: util::stream_format(stream, "mtsa %s", reg[rs]); break;
+ default: util::stream_format(stream, "dc.l $%08x [invalid]", op); break;
}
return 0;
}