718209358f
LQ, STQ have the same register-pair ordering as LQARX/STQARX., which is
the even (lower) register contains the most significant bits. This is
not implemented correctly for big-endian.
do_ldst_quad() has variables low_addr_gpr and high_addr_gpr which is
confusing because they are low and high addresses, whereas LQARX/STQARX.
and most such things use the low and high values for lo/hi variables.
The conversion to native 128-bit memory access functions missed this
strangeness.
Fix this by changing the if condition, and change the variable names to
hi/lo to match convention.
Cc: qemu-stable@nongnu.org
Reported-by: Ivan Warren <ivan@vmfacility.fr>
Fixes:
|
||
---|---|---|
.. | ||
branch-impl.c.inc | ||
dfp-impl.c.inc | ||
fixedpoint-impl.c.inc | ||
fp-impl.c.inc | ||
fp-ops.c.inc | ||
processor-ctrl-impl.c.inc | ||
spe-impl.c.inc | ||
spe-ops.c.inc | ||
storage-ctrl-impl.c.inc | ||
vmx-impl.c.inc | ||
vmx-ops.c.inc | ||
vsx-impl.c.inc | ||
vsx-ops.c.inc |