• Paul Mackerras's avatar
    powerpc: Use instruction emulation infrastructure to handle alignment faults · 31bfdb03
    Paul Mackerras authored
    This replaces almost all of the instruction emulation code in
    fix_alignment() with calls to analyse_instr(), emulate_loadstore()
    and emulate_dcbz().  The only emulation code left is the SPE
    emulation code; analyse_instr() etc. do not handle SPE instructions
    at present.
    
    One result of this is that we can now handle alignment faults on
    all the new VSX load and store instructions that were added in POWER9.
    VSX loads/stores will take alignment faults for unaligned accesses
    to cache-inhibited memory.
    
    Another effect is that we no longer rely on the DAR and DSISR values
    set by the processor.
    
    With this, we now need to include the instruction emulation code
    unconditionally.
    Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    31bfdb03
align.c 8.43 KB