summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/sparc/sparcdasm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/sparc/sparcdasm.cpp')
-rw-r--r--src/devices/cpu/sparc/sparcdasm.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/devices/cpu/sparc/sparcdasm.cpp b/src/devices/cpu/sparc/sparcdasm.cpp
index 0b9a07f86e3..62bd2fa42a4 100644
--- a/src/devices/cpu/sparc/sparcdasm.cpp
+++ b/src/devices/cpu/sparc/sparcdasm.cpp
@@ -5,7 +5,7 @@
*/
#include "emu.h"
-#include "mb86901defs.h"
+#include "sparcdefs.h"
static void print(char *output, const char *fmt, ...)
{
@@ -354,9 +354,24 @@ offs_t sparc_dasm(char *buffer, offs_t pc, UINT32 op)
else
print(buffer, "wr %s,%d,%%asr%d", regnames[RS1], SIMM13, RD);
break;
- case 49: print(buffer, "wr %s,%d,%%psr", regnames[RS1], SIMM13); break;
- case 50: print(buffer, "wr %s,%d,%%wim", regnames[RS1], SIMM13); break;
- case 51: print(buffer, "wr %s,%d,%%tbr", regnames[RS1], SIMM13); break;
+ case 49:
+ if (RS1 == 0)
+ print(buffer, "wr %d,%%psr", SIMM13);
+ else
+ print(buffer, "wr %s,%d,%%psr", regnames[RS1], SIMM13);
+ break;
+ case 50:
+ if (RS1 == 0)
+ print(buffer, "wr %d,%%wim", SIMM13);
+ else
+ print(buffer, "wr %s,%d,%%wim", regnames[RS1], SIMM13);
+ break;
+ case 51:
+ if (RS1 == 0)
+ print(buffer, "wr %d,%%tbr", SIMM13);
+ else
+ print(buffer, "wr %s,%d,%%tbr", regnames[RS1], SIMM13);
+ break;
case 52: // FPop1
sparc_dasm_fpop1(buffer, op);
break;