qemu/target-arm
Peter Maydell f502cfc207 target-arm: Implement SP_EL0, SP_EL1
Implement handling for the AArch64 SP_EL0 system register.
This holds the EL0 stack pointer, and is only accessible when
it's not being used as the stack pointer, ie when we're in EL1
and EL1 is using its own stack pointer. We also provide a
definition of the SP_EL1 register; this isn't guest visible
as a system register for an implementation like QEMU which
doesn't provide EL2 or EL3; however it is useful for ensuring
the underlying state is migrated.

We need to update the state fields in the CPU state whenever
we switch stack pointers; this happens when we take an exception
and also when SPSEL is used to change the bit in PSTATE which
indicates which stack pointer EL1 should use.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
2014-04-17 21:34:04 +01:00
..
arm-semi.c cpu: Move opaque field from CPU_COMMON to CPUState 2014-03-13 19:20:47 +01:00
cpu64.c target-arm: A64: Implement DC ZVA 2014-04-17 21:34:04 +01:00
cpu-qom.h target-arm: A64: Implement DC ZVA 2014-04-17 21:34:04 +01:00
cpu.c target-arm: Implement AArch64 views of fault status and data registers 2014-04-17 21:34:04 +01:00
cpu.h target-arm: Implement SP_EL0, SP_EL1 2014-04-17 21:34:04 +01: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: Implement FCVTXN 2014-03-17 16:31:53 +00:00
helper-a64.h target-arm: A64: Implement FCVTXN 2014-03-17 16:31:53 +00:00
helper.c target-arm: Implement SP_EL0, SP_EL1 2014-04-17 21:34:04 +01:00
helper.h target-arm: A64: Implement DC ZVA 2014-04-17 21:34:04 +01:00
internals.h target-arm: Implement SP_EL0, SP_EL1 2014-04-17 21:34:04 +01:00
iwmmxt_helper.c misc: Use new rotate functions 2013-09-25 21:23:05 +02:00
kvm32.c target-arm: Split out private-to-target functions into internals.h 2014-04-17 21:34:03 +01:00
kvm64.c target-arm: Implement SP_EL0, SP_EL1 2014-04-17 21:34:04 +01:00
kvm_arm.h arm: vgic device control api support 2014-02-26 17:20:00 +00:00
kvm-consts.h target-arm/kvm-consts.h: Define QEMU constants for known KVM CPUs 2014-02-20 10:35:50 +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 arm: vgic device control api support 2014-02-26 17:20:00 +00:00
machine.c target-arm: Implement SP_EL0, SP_EL1 2014-04-17 21:34:04 +01:00
Makefile.objs target-arm: A64: add stubs for a64 specific helpers 2013-12-17 19:42:32 +00:00
neon_helper.c target-arm: A64: Add saturating accumulate ops (USQADD/SUQADD) 2014-03-18 23:10:06 +00:00
op_addsub.h Correct spelling of licensed 2011-07-23 11:26:12 -05:00
op_helper.c target-arm: Implement SP_EL0, SP_EL1 2014-04-17 21:34:04 +01:00
translate-a64.c target-arm: A64: Implement DC ZVA 2014-04-17 21:34:04 +01:00
translate.c target-arm: Fix VFP enables for AArch32 EL0 under AArch64 EL1 2014-04-17 21:34:03 +01:00
translate.h target-arm: A64: Add assertion that FP access was checked 2014-04-17 21:34:03 +01:00