qemu/target/ppc
Mark Cave-Ayland d9acba3130 target/ppc: update {get,set}_dfp{64,128}() helper functions to read/write DFP numbers correctly
Since commit ef96e3ae96 "target/ppc: move FP and VMX registers into aligned vsr
register array" FP registers are no longer stored consecutively in memory and so
the current method of combining FP register pairs into DFP numbers is incorrect.

Firstly update the definition of the dh_*_fprp defines in helper.h to reflect
that FP registers are now stored as part of an array of ppc_vsr_t elements
rather than plain uint64_t elements, and then introduce a new ppc_fprp_t type
which conceptually represents a DFP even-odd register pair to be consumed by the
DFP helper functions.

Finally update the new DFP {get,set}_dfp{64,128}() helper functions to convert
between DFP numbers and DFP even-odd register pairs correctly, making use of the
existing VsrD() macro to access the correct elements regardless of host endian.

Fixes: ef96e3ae96 "target/ppc: move FP and VMX registers into aligned vsr register array"
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20190926185801.11176-4-mark.cave-ayland@ilande.co.uk>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-10-04 19:08:21 +10:00
..
translate ppc: Add support for 'mffsce' instruction 2019-10-04 10:25:23 +10:00
arch_dump.c target/ppc: Add helper_mfvscr 2019-02-18 11:00:44 +11:00
compat.c target/ppc: Allow cpu compatiblity checks based on type, not instance 2018-06-21 21:22:53 +10:00
cpu-models.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
cpu-models.h target/ppc: Style fixes for ppc-models.[ch] 2019-04-26 10:41:24 +10:00
cpu-param.h tcg: Split out target/arch/cpu-param.h 2019-06-10 07:03:34 -07:00
cpu-qom.h powerpc/spapr: Add host threads parameter to ibm,get_system_parameter 2019-08-29 09:46:07 +10:00
cpu.c target/ppc: support for 32-bit carry and overflow 2017-03-01 11:23:39 +11:00
cpu.h target/ppc: update {get,set}_dfp{64,128}() helper functions to read/write DFP numbers correctly 2019-10-04 19:08:21 +10:00
dfp_helper.c target/ppc: update {get,set}_dfp{64,128}() helper functions to read/write DFP numbers correctly 2019-10-04 19:08:21 +10:00
excp_helper.c target/ppc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
fpu_helper.c ppc: Use FPSCR defines instead of constants 2019-10-04 10:25:23 +10:00
gdbstub.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
helper_regs.h target/ppc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
helper.h target/ppc: update {get,set}_dfp{64,128}() helper functions to read/write DFP numbers correctly 2019-10-04 19:08:21 +10:00
int_helper.c target/ppc: Optimize emulation of vclzw instruction 2019-08-21 17:17:11 +10:00
internal.h ppc: Add support for 'mffscrn','mffscrni' instructions 2019-10-04 10:25:23 +10:00
kvm_ppc.h target/ppc/machine: Add kvmppc_pvr_workaround_required() stub 2019-07-02 09:43:58 +10:00
kvm-stub.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
kvm.c ppc/kvm: Skip writing DPDES back when in run time state 2019-10-04 10:25:23 +10:00
machine.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
Makefile.objs build: remove CONFIG_LIBDECNUMBER 2017-10-16 18:03:52 +02:00
mem_helper.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
mfrom_table_gen.c target/ppc: Style fixes for mfrom_table.inc.c & mfrom_table_gen.c 2019-04-26 10:42:38 +10:00
mfrom_table.inc.c target/ppc: Style fixes for mfrom_table.inc.c & mfrom_table_gen.c 2019-04-26 10:42:38 +10:00
misc_helper.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
mmu_helper.c target/ppc: Rewrite a fall through comment 2019-08-21 10:57:28 +02:00
mmu-book3s-v3.c target/ppc: Support for POWER9 native hash 2019-02-26 09:21:25 +11:00
mmu-book3s-v3.h Clean up header guards that don't match their file name 2019-05-13 08:58:55 +02:00
mmu-hash32.c ppc/hash32: Rework R and C bit updates 2019-04-26 11:37:57 +10:00
mmu-hash32.h target/ppc: Manage external HPT via virtual hypervisor 2017-03-01 11:23:39 +11:00
mmu-hash64.c target/ppc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
mmu-hash64.h ppc/hash64: Rework R and C bit updates 2019-04-26 11:37:57 +10:00
mmu-radix64.c target/ppc: Don't check UPRT in radix mode when in HV real mode 2019-04-26 11:37:57 +10:00
mmu-radix64.h target/ppc: Rename PATB/PATBE -> PATE 2019-02-26 09:21:25 +11:00
monitor.c hmp: Move hmp.h to include/monitor/ 2019-07-02 07:19:45 +02:00
timebase_helper.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
trace-events target/ppc/kvm: Fix trace typo 2019-05-29 11:39:44 +10:00
translate_init.inc.c ppc/kvm: Skip writing DPDES back when in run time state 2019-10-04 10:25:23 +10:00
translate.c tcg: TCGMemOp is now accelerator independent MemOp 2019-09-03 08:30:38 -07:00
user_only_helper.c target/ppc: Convert to CPUClass::tlb_fill 2019-05-10 11:12:50 -07:00