• Oliver O'Halloran's avatar
    powerpc/sstep: Fix emulation fall-through · 66707836
    Oliver O'Halloran authored
    There is a switch fallthough in instr_analyze() which can cause an
    invalid instruction to be emulated as a different, valid, instruction.
    The rld* (opcode 30) case extracts a sub-opcode from bits 3:1 of the
    instruction word. However, the only valid values of this field are 001
    and 000. These cases are correctly handled, but the others are not which
    causes execution to fall through into case 31.
    
    Breaking out of the switch causes the instruction to be marked as
    unknown and allows the caller to deal with the invalid instruction in a
    manner consistent with other invalid instructions.
    Signed-off-by: default avatarOliver O'Halloran <oohall@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    66707836
sstep.c 43.8 KB