• Paul Mackerras's avatar
    [POWERPC] Handle alignment faults on new FP load/store instructions · c6d4267e
    Paul Mackerras authored
    This adds code to handle alignment traps generated by the following
    new floating-point load/store instructions, by emulating the
    instruction in the kernel (as is done for other instructions that
    generate alignment traps):
    
    lfiwax	load floating-point as integer word algebraic indexed
    stfiwx	store floating-point as integer word indexed
    lfdp	load floating-point double pair
    lfdpx	load floating-point double pair indexed
    stfdp	store floating-point double pair
    stfdpx	store floating-point double pair indexed
    
    All these except stfiwx are new in POWER6.
    
    lfdp/lfdpx/stfdp/stfdpx load and store 16 bytes of memory into an
    even/odd FP register pair.  In little-endian mode each 8-byte value is
    byte-reversed separately (i.e. not as a 16-byte unit).  lfiwax/stfiwx
    load or store the lower 4 bytes of a floating-point register from/to
    memory; lfiwax sets the upper 4 bytes of the FP register to the sign
    extension of the value loaded.
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    c6d4267e
align.c 16.7 KB