Skip to content
  • Peter Maydell's avatar
    target-arm: A64: Fix vector register access on bigendian hosts · e2f90565
    Peter Maydell authored
    
    
    The A64 128 bit vector registers are stored as a pair of
    uint64_t values in the register array. This means that if
    we're directly loading or storing a value of size less than
    64 bits we must adjust the offset appropriately to account
    for whether the host is bigendian or not. Provide utility
    functions to abstract away the offsetof() calculations for
    the FP registers.
    
    For do_fp_st() we can sidestep most of the issues for 64 bit
    and smaller reg-to-mem transfers by always doing a 64 bit
    load from the register and writing just the piece we need
    to memory.
    
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarRichard Henderson <rth@twiddle.net>
    e2f90565