« Previous | Next » 

Revision 76afb0d5

ID76afb0d5967ebee59efbf3bfc6a2a042f3cb06f6

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