f64f1f8704
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:
|
||
---|---|---|
.. | ||
translate | ||
arch_dump.c | ||
compat.c | ||
cpu-models.c | ||
cpu-models.h | ||
cpu-param.h | ||
cpu-qom.h | ||
cpu.c | ||
cpu.h | ||
cpu_init.c | ||
dfp_helper.c | ||
excp_helper.c | ||
fpu_helper.c | ||
gdbstub.c | ||
helper.h | ||
helper_regs.c | ||
helper_regs.h | ||
insn32.decode | ||
insn64.decode | ||
int_helper.c | ||
internal.h | ||
Kconfig | ||
kvm-stub.c | ||
kvm.c | ||
kvm_ppc.h | ||
machine.c | ||
mem_helper.c | ||
meson.build | ||
misc_helper.c | ||
mmu-book3s-v3.c | ||
mmu-book3s-v3.h | ||
mmu-books.h | ||
mmu-hash32.c | ||
mmu-hash32.h | ||
mmu-hash64.c | ||
mmu-hash64.h | ||
mmu-radix64.c | ||
mmu-radix64.h | ||
mmu_common.c | ||
mmu_helper.c | ||
power8-pmu-regs.c.inc | ||
power8-pmu.c | ||
power8-pmu.h | ||
ppc-qmp-cmds.c | ||
spr_common.h | ||
tcg-stub.c | ||
timebase_helper.c | ||
trace-events | ||
trace.h | ||
translate.c | ||
user_only_helper.c |