summaryrefslogtreecommitdiffstats
path: root/src/emu/cpu/arcompact/arcompactdasm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/arcompact/arcompactdasm.c')
-rw-r--r--src/emu/cpu/arcompact/arcompactdasm.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/emu/cpu/arcompact/arcompactdasm.c b/src/emu/cpu/arcompact/arcompactdasm.c
index cb3265837e7..003bc8551d4 100644
--- a/src/emu/cpu/arcompact/arcompactdasm.c
+++ b/src/emu/cpu/arcompact/arcompactdasm.c
@@ -689,25 +689,32 @@ int arcompact_handle04_1f_dasm(DASM_OPS_32) { print("<illegal 0x04_1f> (%08x)",
int arcompact_handle04_20_dasm(DASM_OPS_32)
{
+ // todo, other bits (in none long immediate mode at least)
+
+ int size = 4;
int C = (op & 0x00000fc0) >> 6;
+ UINT8 condition = op & 0x0000001f;
+
op &= ~0x00000fc0;
if (C == LIMM_REG)
{
UINT32 limm;
GET_LIMM_32;
-
-
- print("Jcc %08x (%08x)", limm, op);
+ size = 8;
+
+ print("J(%s) %08x (%08x)", conditions[condition], limm, op);
}
else
{
- print("Jcc (%04x) (%08x)", C, op);
+ print("J(%s) (r%d) (%08x)", conditions[condition], C, op);
}
- return 4;
+ return size;
}
+
+
int arcompact_handle04_21_dasm(DASM_OPS_32) { print("Jcc.D (%08x)", op); return 4;}
int arcompact_handle04_22_dasm(DASM_OPS_32) { print("JLcc (%08x)", op); return 4;}
int arcompact_handle04_23_dasm(DASM_OPS_32) { print("JLcc.D (%08x)", op); return 4;}