On 12/30/2013 08:34 AM, Peter Maydell wrote:
> 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 <peter.mayd...@linaro.org>
> ---
> Didn't spot this bug until I started reviewing the FP related
> patches (the code also I think is cleaner without offsetof()
> scattered everywhere).
> ---
>  target-arm/translate-a64.c | 69 
> +++++++++++++++++++++++-----------------------
>  1 file changed, 35 insertions(+), 34 deletions(-)

Reviewed-by: Richard Henderson <r...@twiddle.net>


r~

Reply via email to