« Previous | Next » 

Revision e2f90565

IDe2f90565e7b3e2824fffcfcbcecf86205a1f14e2

Added by Peter Maydell over 10 years ago

target-arm: A64: Fix vector register access on bigendian hosts

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: Peter Maydell <>
Reviewed-by: Richard Henderson <>

Files

  • added
  • modified
  • copied
  • renamed
  • deleted

View differences