qemu-e2k/target/arm
Aaron Lindsay 980ebe8705 target/arm: Swap PMU values before/after migrations
Because of the PMU's design, many register accesses have side effects
which are inter-related, meaning that the normal method of saving CP
registers can result in inconsistent state. These side-effects are
largely handled in pmu_op_start/finish functions which can be called
before and after the state is saved/restored. By doing this and adding
raw read/write functions for the affected registers, we avoid
migration-related inconsistencies.

Signed-off-by: Aaron Lindsay <aclindsa@gmail.com>
Signed-off-by: Aaron Lindsay <aaron@os.amperecomputing.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20181211151945.29137-4-aaron@os.amperecomputing.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-21 10:38:55 +00:00
..
arch_dump.c target/arm: Add aa{32, 64}_vfp_{dreg, qreg} helpers 2018-01-25 11:45:29 +00:00
arm_ldst.h target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
arm-powerctl.c target-arm: powerctl: Enable HVC when starting CPUs to EL2 2018-10-16 17:14:55 +01:00
arm-powerctl.h target-arm/powerctl: defer cpu reset work to CPU context 2017-02-24 10:32:46 +00:00
arm-semi.c target/arm: Remove a handful of stray tabs 2018-08-24 13:17:48 +01:00
cpu64.c target/arm: Enable PAuth for user-only 2019-01-21 10:38:55 +00:00
cpu-qom.h arm: replace instance_post_init() 2019-01-07 16:18:42 +04:00
cpu.c target/arm: Enable PAuth for user-only 2019-01-21 10:38:55 +00:00
cpu.h target/arm: Reorganize PMCCNTR accesses 2019-01-21 10:38:55 +00:00
crypto_helper.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
gdbstub64.c
gdbstub.c arm: fix malloc type mismatch 2018-05-31 14:50:52 +01:00
helper-a64.c target/arm: Add new_pc argument to helper_exception_return 2019-01-21 10:38:53 +00:00
helper-a64.h target/arm: Add new_pc argument to helper_exception_return 2019-01-21 10:38:53 +00:00
helper-sve.h target/arm: Rewrite vector gather first-fault loads 2018-10-08 14:55:03 +01:00
helper.c target/arm: Swap PMU values before/after migrations 2019-01-21 10:38:55 +00:00
helper.h target/arm: Move helper_exception_return to helper-a64.c 2019-01-21 10:38:53 +00:00
idau.h qom: make interface types abstract 2018-12-11 15:45:22 -02:00
internals.h target/arm: Decode TBID from TCR 2019-01-21 10:38:54 +00:00
iwmmxt_helper.c target/arm: Untabify iwmmxt_helper.c 2018-08-24 13:17:48 +01:00
kvm32.c target/arm: Fill in ARMISARegisters for kvm32 2018-11-19 15:29:08 +00:00
kvm64.c target/arm: Move id_aa64mmfr* to ARMISARegisters 2018-12-13 14:40:56 +00:00
kvm_arm.h target/arm: Install ARMISARegisters from kvm host 2018-11-19 15:29:07 +00:00
kvm-consts.h arm: add trailing ; after MISMATCH_CHECK 2017-02-01 03:37:18 +02:00
kvm-stub.c
kvm.c qemu/queue.h: leave head structs anonymous unless necessary 2019-01-11 15:46:55 +01:00
machine.c target/arm: Swap PMU values before/after migrations 2019-01-21 10:38:55 +00:00
Makefile.objs target/arm: Add PAuth helpers 2019-01-21 10:38:53 +00:00
monitor.c qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
neon_helper.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
op_addsub.h
op_helper.c target/arm: Move helper_exception_return to helper-a64.c 2019-01-21 10:38:53 +00:00
pauth_helper.c target/arm: Implement pauth_computepac 2019-01-21 10:38:55 +00:00
psci.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
sve_helper.c target/arm/sve_helper: Fix compilation with clang 3.4 2018-11-28 15:31:15 +00:00
sve.decode target/arm: SVE brk[ab] merging does not have s bit 2019-01-07 15:23:45 +00:00
trace-events target/arm/kvm: Translate the MSI doorbell in kvm_arch_fixup_msi_route 2018-05-04 18:52:58 +01:00
translate-a64.c target/arm: Tidy TBI handling in gen_a64_set_pc 2019-01-21 10:38:55 +00:00
translate-a64.h target/arm: Extend vec_reg_offset to larger sizes 2018-06-15 15:23:34 +01:00
translate-sve.c decodetree: Remove "insn" argument from trans_* expanders 2018-10-31 16:48:54 +00:00
translate.c target/arm: Emit barriers for A32/T32 load-acquire/store-release insns 2019-01-07 15:23:48 +00:00
translate.h target/arm: Merge TBFLAG_AA_TB{0, 1} to TBII 2019-01-21 10:38:54 +00:00
vec_helper.c target/arm: Implement SVE dot product (indexed) 2018-06-29 15:11:15 +01:00