Fix bugs caught by fuzzing

This commit is contained in:
Tim Jarzombek
2026-02-12 21:11:11 -05:00
parent cbff26539a
commit 398e0b025d
2 changed files with 9 additions and 5 deletions
+5 -5
View File
@@ -1176,14 +1176,14 @@ void opc_group31(PPCDisasmContext* ctx) {
if (!rs && !ra)
opc_illegal(ctx);
else {
ctx->instr_str = my_sprintf("%-7s r%s", "tlbld", rb);
ctx->instr_str = my_sprintf("%-7s r%d", "tlbld", rb);
add_reg_in(ctx, "r%d", rb);
}
} else if (index == 30) { /* tlbli - 603 only */
} else if (index == 31) { /* tlbli - 603 only */
if (!rs && !ra)
opc_illegal(ctx);
else {
ctx->instr_str = my_sprintf("%-7s r%s", "tlbli", rb);
ctx->instr_str = my_sprintf("%-7s r%d", "tlbli", rb);
add_reg_in(ctx, "r%d", rb);
}
}
@@ -1250,10 +1250,10 @@ void opc_group31(PPCDisasmContext* ctx) {
add_reg_out(ctx, "cr");
}
} else {
strcpy(opcode, opc_logic[index]);
if (!strlen(opcode)) {
if (index >= 16 || !strlen(opc_logic[index])) {
opc_illegal(ctx);
} else {
strcpy(opcode, opc_logic[index]);
if (rc_set) {
strcat(opcode, ".");
add_reg_out(ctx, "cr");
+4
View File
@@ -407,6 +407,10 @@
0xFFF00100,0x7D453D2A,stswx,r10,r5,r7
0xFFF00100,0x7C0002E4,tlbia
0xFFF00100,0x7C004A64,tlbie,r9
0xFFF00100,0x7C202FA4,tlbld,r5
0xFFF00100,0x7C6007A4,tlbld,r0
0xFFF00100,0x7C203FE4,tlbli,r7
0xFFF00100,0x7C40FFE4,tlbli,r31
# various simplified (extended) mnemonics
0xFFF00100,0x60000000,nop
1 # Test data for PowerPC disassembler supplied as comma-separated values
407 0xFFF00100,0x7C430C32,rrib,r3,r2,r1 0xFFF00100,0x7C00003A,maskg,r0,r0,r0
408 0xFFF00100,0x7C430C33,rrib.,r3,r2,r1 0xFFF00100,0x7E3EE43A,maskir,r30,r17,r28
409 0xFFF00100,0x7C410132,sle,r1,r2,r0 0xFFF00100,0x58411800,rlmi,r1,r2,r3,0,0
410 0xFFF00100,0x58411801,rlmi.,r1,r2,r3,0,0
411 0xFFF00100,0x7C430C32,rrib,r3,r2,r1
412 0xFFF00100,0x7C430C33,rrib.,r3,r2,r1
413 0xFFF00100,0x7C410132,sle,r1,r2,r0
414 0xFFF00100,0x7C410133,sle.,r1,r2,r0
415 0xFFF00100,0x7C4101B2,sleq,r1,r2,r0
416 0xFFF00100,0x7C4101B3,sleq.,r1,r2,r0