qemu-e2k/linux-user
Mark Cave-Ayland ef96e3ae96 target/ppc: move FP and VMX registers into aligned vsr register array
The VSX register array is a block of 64 128-bit registers where the first 32
registers consist of the existing 64-bit FP registers extended to 128-bit
using new VSR registers, and the last 32 registers are the VMX 128-bit
registers as show below:

            64-bit               64-bit
    +--------------------+--------------------+
    |        FP0         |                    |  VSR0
    +--------------------+--------------------+
    |        FP1         |                    |  VSR1
    +--------------------+--------------------+
    |        ...         |        ...         |  ...
    +--------------------+--------------------+
    |        FP30        |                    |  VSR30
    +--------------------+--------------------+
    |        FP31        |                    |  VSR31
    +--------------------+--------------------+
    |                  VMX0                   |  VSR32
    +-----------------------------------------+
    |                  VMX1                   |  VSR33
    +-----------------------------------------+
    |                  ...                    |  ...
    +-----------------------------------------+
    |                  VMX30                  |  VSR62
    +-----------------------------------------+
    |                  VMX31                  |  VSR63
    +-----------------------------------------+

In order to allow for future conversion of VSX instructions to use TCG vector
operations, recreate the same layout using an aligned version of the existing
vsr register array.

Since the old fpr and avr register arrays are removed, the existing callers
must also be updated to use the correct offset in the vsr register array. This
also includes switching the relevant VMState fields over to using subarrays
to make sure that migration is preserved.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-01-09 09:28:14 +11:00
..
aarch64 linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
alpha linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
arm linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
cris linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
generic linux-user: move generic signal definitions to generic/signal.h 2018-06-04 01:30:44 +02:00
host linux-user: Add safe_syscall for riscv64 host 2018-12-26 06:40:02 +11:00
hppa linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
i386 linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
m68k linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
microblaze linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
mips linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
mips64 linux-user: Add prctl() PR_SET_FP_MODE and PR_GET_FP_MODE implementations 2018-10-29 15:50:31 +01:00
nios2 linux-user: Clean up nios2 main loop signal handling 2018-11-12 16:02:10 +01:00
openrisc linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
ppc target/ppc: move FP and VMX registers into aligned vsr register array 2019-01-09 09:28:14 +11:00
riscv linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
s390x linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
sh4 linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
sparc linux-user/sparc/signal.c: Remove dead code 2018-11-15 13:06:40 +00:00
sparc64 linux-user/sparc64: Add inotify_rm_watch and tee syscalls 2018-06-11 14:47:45 +02:00
tilegx linux-user: move generic signal definitions to generic/signal.h 2018-06-04 01:30:44 +02:00
x86_64 linux-user: move generic signal definitions to generic/signal.h 2018-06-04 01:30:44 +02:00
xtensa linux-user: Don't call gdb_handlesig() before queue_signal() 2018-11-12 15:48:00 +01:00
cpu_loop-common.h linux-user: create a dummy per arch cpu_loop.c 2018-04-30 09:47:55 +02:00
elfload.c linux-user: Read and set FP ABI value from MIPS abiflags 2018-10-29 15:50:31 +01:00
errno_defs.h
exit.c linux-user: add gcov support to preexit_cleanup 2018-07-05 15:59:41 +01:00
fd-trans.c linux-user: move TargetFdTrans functions to their own file 2018-09-25 22:36:47 +02:00
fd-trans.h linux-user: move TargetFdTrans functions to their own file 2018-09-25 22:36:47 +02:00
flat.h
flatload.c linux-user/flatload: fix initial stack pointer alignment 2018-10-30 11:23:32 -07:00
ioctls.h linux-user: Implement special usbfs ioctls. 2018-10-19 14:05:10 +02:00
linux_loop.h
linuxload.c
m68k-sim.c
main.c qom: convert the CPU list to RCU 2018-08-23 18:46:25 +02:00
Makefile.objs linux-user: move TargetFdTrans functions to their own file 2018-09-25 22:36:47 +02:00
mmap.c linux-user/mmap.c: handle invalid len maps correctly 2018-07-31 09:57:25 +02:00
qemu.h QEMU trivial patches collected between June and October 2018 2018-10-30 15:49:55 +00:00
safe-syscall.S
signal-common.h linux-user: introduce target_sigsp() and target_save_altstack() 2018-05-03 18:29:15 +02:00
signal.c linux-user: Implement signals for openrisc 2018-07-03 22:40:33 +09:00
socket.h linux-user: update ARCH_HAS_SOCKET_TYPES use 2018-05-25 10:10:55 +02:00
strace.c linux-user: Add support for SO_REUSEPORT 2018-11-12 16:38:26 +01:00
strace.list linux-user/strace: Improve recvmsg() output 2018-07-03 16:27:15 +02:00
syscall_defs.h linux-user: Implement special usbfs ioctls. 2018-10-19 14:05:10 +02:00
syscall_types.h linux-user: Implement special usbfs ioctls. 2018-10-19 14:05:10 +02:00
syscall.c linux-user: Update MIPS specific prctl() implementation 2018-11-17 19:29:34 +01:00
target_flat.h
trace-events
uaccess.c
uname.c
uname.h
vm86.c