diff --git a/cpu/ppc/ppcdisasm.cpp b/cpu/ppc/ppcdisasm.cpp index e5e0e17..e7ea020 100644 --- a/cpu/ppc/ppcdisasm.cpp +++ b/cpu/ppc/ppcdisasm.cpp @@ -1025,14 +1025,14 @@ void opc_group31(PPCDisasmContext* ctx) /* dcba, dcbf, dcbi, dcbst, dcbt, dcbz, icbi */ else if ((index == 1) | (index == 2) | (index == 7) \ | (index == 8) | (index == 14) | (index == 23) \ - | (index == 30) | (index == 31)) { + | (index == 30) | (index == 31)) { if (rc_set | (rs != 0)) { opc_illegal(ctx); return; } else { if (ra == 0) - ctx->instr_str = my_sprintf("%-8sr%d, 0, r%d", opcode, rb); + ctx->instr_str = my_sprintf("%-8s0, r%d", opcode, rb); else fmt_twoop(ctx->instr_str, opcode, ra, rb); return; @@ -1040,6 +1040,7 @@ void opc_group31(PPCDisasmContext* ctx) } else if (index == 17) { /* tlbsync */ ctx->instr_str = my_sprintf("%-8s", opcode); + return; } else { opc_illegal(ctx); diff --git a/cpu/ppc/test/ppcdisasmtest.csv b/cpu/ppc/test/ppcdisasmtest.csv index 5633bbd..208ce13 100644 --- a/cpu/ppc/test/ppcdisasmtest.csv +++ b/cpu/ppc/test/ppcdisasmtest.csv @@ -366,7 +366,7 @@ # misc instructions 0xFFF00100,0x7D290034,cntlzw,r9,r9 0xFFF00100,0x7FFF0035,cntlzw.,r31,r31 -0xFFF00100,0x7C00D7AC,icbi,r0,r26 +0xFFF00100,0x7C00D7AC,icbi,0,r26 0xFFF00100,0x7D604828,lwarx,r11,0,r9 0xFFF00100,0x7CBC04AA,lswi,r5,r28,0x20 0xFFF00100,0x7FEF2C2A,lswx,r31,r15,r5