• Paul Mackerras's avatar
    powerpc: Split out instruction analysis part of emulate_step() · be96f633
    Paul Mackerras authored
    This splits out the instruction analysis part of emulate_step() into
    a separate analyse_instr() function, which decodes the instruction,
    but doesn't execute any load or store instructions.  It does execute
    integer instructions and branches which can be executed purely by
    updating register values in the pt_regs struct.  For other instructions,
    it returns the instruction type and other details in a new
    instruction_op struct.  emulate_step() then uses that information
    to execute loads, stores, cache operations, mfmsr, mtmsr[d], and
    (on 64-bit) sc instructions.
    
    The reason for doing this is so that the KVM code can use it instead
    of having its own separate instruction emulation code.  Possibly the
    alignment interrupt handler could also use this.
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    be96f633
sstep.h 2.1 KB