qemu-e2k/target-arm
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
..
arm-semi.c exec: Change cpu_memory_rw_debug() argument to CPUState 2013-07-23 02:41:33 +02:00
cpu64.c target-arm: A64: add set_pc cpu method 2013-12-17 19:42:31 +00:00
cpu-qom.h ARM: cpu: add "reset_hivecs" property 2013-12-17 19:42:29 +00:00
cpu.c target-arm: Clean up handling of AArch64 PSTATE 2013-12-17 19:42:30 +00:00
cpu.h target-arm: Widen thread-local register state fields to 64 bits 2014-01-07 19:17:59 +00:00
crypto_helper.c target-arm: add support for v8 AES instructions 2013-12-17 19:42:25 +00:00
gdbstub64.c target-arm: Clean up handling of AArch64 PSTATE 2013-12-17 19:42:30 +00:00
gdbstub.c cpu: Introduce CPUClass::gdb_{read,write}_register() 2013-07-27 00:04:17 +02:00
helper-a64.c target-arm: A64: add support for 1-src CLS insn 2013-12-17 20:12:51 +00:00
helper-a64.h target-arm: A64: add support for 1-src CLS insn 2013-12-17 20:12:51 +00:00
helper.c target-arm: Widen thread-local register state fields to 64 bits 2014-01-07 19:17:59 +00:00
helper.h target-arm: A64: add stubs for a64 specific helpers 2013-12-17 19:42:32 +00:00
iwmmxt_helper.c misc: Use new rotate functions 2013-09-25 21:23:05 +02:00
kvm32.c target-arm/kvm: Split 32 bit only code into its own file 2013-12-17 19:42:29 +00:00
kvm64.c target-arm: Add minimal KVM AArch64 support 2013-12-17 19:42:30 +00:00
kvm_arm.h target-arm: Provide '-cpu host' when running KVM 2013-12-10 13:28:49 +00:00
kvm-consts.h target-arm: Update generic cpreg code for AArch64 2014-01-04 22:15:44 +00:00
kvm-stub.c target-arm: Initialize cpreg list from KVM when using KVM 2013-06-25 18:16:10 +01:00
kvm.c target-arm: Add minimal KVM AArch64 support 2013-12-17 19:42:30 +00:00
machine.c target-arm: Prepare translation for AArch64 code 2013-09-10 19:11:28 +01:00
Makefile.objs target-arm: A64: add stubs for a64 specific helpers 2013-12-17 19:42:32 +00:00
neon_helper.c
op_addsub.h
op_helper.c
translate-a64.c target-arm: A64: Implement minimal set of EL0-visible sysregs 2014-01-07 19:17:59 +00:00
translate.c target-arm: Remove ARMCPU/CPUARMState from cpregs APIs used by decoder 2014-01-07 19:17:58 +00:00
translate.h target-arm: Remove ARMCPU/CPUARMState from cpregs APIs used by decoder 2014-01-07 19:17:58 +00:00