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.maydell@xxxxxxxxxx> > --- > 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 <rth@xxxxxxxxxxx> r~ _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm