qemu-patch-raspberry4/linux-user
Peter Maydell e4fe830b50 target-arm: Widen thread-local register state fields to 64 bits
The common pattern for system registers in a 64-bit capable ARM
CPU is that when in AArch32 the cp15 register is a view of the
bottom 32 bits of the 64-bit AArch64 system register; writes in
AArch32 leave the top half unchanged. The most natural way to
model this is to have the state field in the CPU struct be a
64 bit value, and simply have the AArch32 TCG code operate on
a pointer to its lower half.

For aarch64-linux-user the only registers we need to share like
this are the thread-local-storage ones. Widen their fields to
64 bits and provide the 64 bit reginfo struct to make them
visible in AArch64 state. Note that minor cleanup of the AArch64
system register encoding space means We can share the TPIDR_EL1
reginfo but need split encodings for TPIDR_EL0 and TPIDRRO_EL0.

Since we're touching almost every line in QEMU that uses the
c13_tls* fields in this patch anyway, we take the opportunity
to rename them in line with the standard ARM architectural names
for these registers.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
2014-01-07 19:17:59 +00:00
..
aarch64 target-arm: Widen thread-local register state fields to 64 bits 2014-01-07 19:17:59 +00:00
alpha linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
arm target-arm: Widen thread-local register state fields to 64 bits 2014-01-07 19:17:59 +00:00
cris linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
i386 linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
m68k linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
microblaze linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
mips linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
mips64 linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
openrisc linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
ppc linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
s390x linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
sh4 linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
sparc linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
sparc64 linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
unicore32 linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
x86_64 linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
cpu-uname.c linux-user: Don't treat AArch64 cpu names specially 2013-09-10 19:11:28 +01:00
cpu-uname.h linux-user: adapt uname machine to emulated CPU 2010-02-06 17:19:43 +01:00
elfload.c linux-user: Add AArch64 support 2013-09-10 19:11:29 +01:00
errno_defs.h Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
flat.h Support for 32 bit ABI on 64 bit targets (only enabled Sparc64) 2007-10-14 16:27:31 +00:00
flatload.c flatload: fix non-GOT relocations 2013-11-29 10:58:37 +02:00
ioctls.h linux-user: allow use of TIOCGSID 2013-09-24 10:47:07 +03:00
linux_loop.h Fix build failure with old kernel headers (loop.h is incompatible with 2008-05-23 16:06:43 +00:00
linuxload.c linux-user: add support of binfmt_misc 'O' flag 2013-09-24 10:47:07 +03:00
m68k-sim.c linux-user: Fix typo m86k -> m68k 2010-10-05 13:53:56 -05:00
main.c target-arm: Widen thread-local register state fields to 64 bits 2014-01-07 19:17:59 +00:00
Makefile.objs build: move *-user/ objects to nested Makefile.objs 2012-06-07 07:17:33 +02:00
mmap.c configure: Make NPTL non-optional 2013-07-22 21:54:52 +03:00
qemu.h linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
signal.c target-arm: Clean up handling of AArch64 PSTATE 2013-12-17 19:42:30 +00:00
socket.h linux-user: improve target_to_host_sock_type conversion 2013-07-05 15:45:40 +03:00
strace.c linux-user: Don't omit comma for strace of rt_sigaction() 2013-04-05 14:40:54 +02:00
strace.list [v2] linux-user: implement m68k atomic syscalls 2013-09-24 10:47:07 +03:00
syscall.c linux-user: pass correct parameter to do_shmctl() 2013-11-29 11:42:14 +02:00
syscall_defs.h linux-user: Add target struct defs needed for POSIX timer syscalls. 2013-11-29 10:58:10 +02:00
syscall_types.h linux-user: Fix SNDCTL_DSP_MAP{IN, OUT}BUF ioctl definitions 2012-08-13 12:45:46 +01:00
target_flat.h linux-user/FLAT: allow targets to override FLAT processing 2011-02-09 10:33:54 +02:00
uaccess.c Fix missing strnlen problems 2009-07-01 18:24:44 +00:00
vm86.c linux-user: fix abi_(u)long, target_ulong mismatch 2011-10-27 14:42:16 +03:00