qemu/target/ppc
Nicholas Piggin f64f1f8704 target/ppc: Fix LQ, STQ register-pair order for big-endian
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: 57b38ffd0c ("target/ppc: Use tcg_gen_qemu_{ld,st}_i128 for LQARX, LQ, STQ")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1836
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
(cherry picked from commit 718209358f)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2023-09-21 19:35:19 +03:00
..
translate target/ppc: Fix LQ, STQ register-pair order for big-endian 2023-09-21 19:35:19 +03:00
arch_dump.c target: ppc: Use MSR_HVB bit to get the target endianness for memory dump 2023-07-07 04:46:12 -03:00
compat.c
cpu_init.c target/ppc: Restrict 'kvm_ppc.h' to sysemu in cpu_init.c 2023-07-07 04:49:14 -03:00
cpu-models.c target/ppc: Add POWER9 DD2.2 model 2023-05-28 13:25:11 -03:00
cpu-models.h target/ppc: Add POWER9 DD2.2 model 2023-05-28 13:25:11 -03:00
cpu-param.h target/ppc: Remove NB_MMU_MODES define 2023-03-13 06:44:37 -07:00
cpu-qom.h target/ppc: Define TYPE_HOST_POWERPC_CPU in cpu-qom.h 2023-07-07 04:49:14 -03:00
cpu.c target/ppc: Flush inputs to zero with NJ in ppc_store_vscr 2023-09-21 19:35:19 +03:00
cpu.h target/ppc: Move CPU QOM definitions to cpu-qom.h 2023-07-07 04:49:14 -03:00
dfp_helper.c target/ppc: Fix warning with clang-15 2023-02-27 22:29:01 +01:00
excp_helper.c target/ppc: Fix pending HDEC when entering PM state 2023-08-04 10:50:19 -03:00
fpu_helper.c target/ppc: Merge COMPUTE_CLASS and COMPUTE_FPRF 2023-05-28 07:13:54 -03:00
gdbstub.c target/ppc: gdbstub init spr gdb_id for all CPUs 2023-06-25 22:41:30 +02:00
helper_regs.c target: Widen pc/cs_base in cpu_get_tb_cpu_state 2023-06-26 17:32:59 +02:00
helper_regs.h target/ppc: Fix PMU hflags calculation 2023-06-10 10:19:24 -03:00
helper.h target/ppc: SMT support for the HID SPR 2023-07-07 04:47:49 -03:00
insn32.decode target/ppc: Fix fallback to MFSS for MFFS* instructions on pre 3.0 ISAs 2023-05-27 08:25:19 -03:00
insn64.decode target/ppc: Implemented [pm]xvbf16ger2* 2022-05-26 17:11:33 -03:00
int_helper.c target/ppc: Use aesdec_ISB_ISR_AK_IMC 2023-07-08 07:30:17 +01:00
internal.h target/ppc: Machine check on invalid real address access on POWER9/10 2023-07-07 04:49:14 -03:00
Kconfig
kvm_ppc.h target/ppc: Remove pointless checks of CONFIG_USER_ONLY in 'kvm_ppc.h' 2023-07-07 04:49:14 -03:00
kvm-stub.c
kvm.c kvm: Introduce kvm_arch_get_default_type hook 2023-08-24 18:43:47 +03:00
machine.c target/ppc: Fix PMU hflags calculation 2023-06-10 10:19:24 -03:00
mem_helper.c target/ppc: Use tcg_gen_qemu_{ld,st}_i128 for LQARX, LQ, STQ 2023-05-23 16:51:19 -07:00
meson.build target/ppc: Only generate decodetree files when TCG is enabled 2023-07-07 04:18:26 -03:00
misc_helper.c target/ppc: SMT support for the HID SPR 2023-07-07 04:47:49 -03:00
mmu_common.c target/ppc: Restrict KVM-specific fields from ArchCPU 2023-06-28 14:27:59 +02:00
mmu_helper.c target/ppc: Move ppcemb_tlb_search() to mmu_common.c 2023-06-10 10:19:24 -03:00
mmu-book3s-v3.c ppc: Check partition and process table alignment 2022-07-18 13:59:43 -03:00
mmu-book3s-v3.h target/ppc: Implement ISA 3.00 tlbie[l] 2022-07-18 13:59:43 -03:00
mmu-books.h
mmu-hash32.c bulk: Rename TARGET_FMT_plx -> HWADDR_FMT_plx 2023-01-18 11:14:34 +01:00
mmu-hash32.h target/ppc: Remove PowerPC 601 CPUs 2022-02-09 09:08:55 +01:00
mmu-hash64.c target/ppc: Fix VRMA page size for ISA v3.0 2023-08-04 12:22:03 -03:00
mmu-hash64.h target/ppc: Fix VRMA page size for ISA v3.0 2023-08-04 12:22:03 -03:00
mmu-radix64.c target/ppc: Add SRR1 prefix indication to interrupt handlers 2023-06-25 22:41:30 +02:00
mmu-radix64.h
power8-pmu-regs.c.inc target/ppc: Inline gen_icount_io_start() 2023-06-05 12:04:29 -07:00
power8-pmu.c target/ppc: PMU implement PERFM interrupts 2023-06-10 10:19:24 -03:00
power8-pmu.h target/ppc: Fix PMU hflags calculation 2023-06-10 10:19:24 -03:00
ppc-qmp-cmds.c ppc: spapr: cleanup cr get/set with helpers. 2023-05-05 12:34:22 -03:00
spr_common.h target/ppc: SMT support for the HID SPR 2023-07-07 04:47:49 -03:00
tcg-stub.c
timebase_helper.c target/ppc: Add TFMR SPR implementation with read and write helpers 2023-07-07 04:18:26 -03:00
trace-events target/ppc: Improve KVM hypercall trace 2022-04-20 18:00:30 -03:00
trace.h
translate.c target/ppc: Disable goto_tb with architectural singlestep 2023-07-31 12:19:13 -07:00
user_only_helper.c