qemu/target/arm
Alex Bennée 6c5c0fec29 target/arm: expose CPUID registers to userspace
A number of CPUID registers are exposed to userspace by modern Linux
kernels thanks to the "ARM64 CPU Feature Registers" ABI. For QEMU's
user-mode emulation we don't need to emulate the kernels trap but just
return the value the trap would have done. To avoid too much #ifdef
hackery we process ARMCPRegInfo with a new helper (modify_arm_cp_regs)
before defining the registers. The modify routine is driven by a
simple data structure which describes which bits are exported and
which are fixed.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20190205190224.2198-3-alex.bennee@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-02-15 09:56:38 +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 arm: Clarify the logic of set_pc() 2019-02-01 14:55:46 +00: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 BTI for -cpu max 2019-02-05 16:52:38 +00:00
cpu-qom.h arm: replace instance_post_init() 2019-01-07 16:18:42 +04:00
cpu.c target/arm: Enable TBI for user-only 2019-02-05 16:52:40 +00:00
cpu.h target/arm: expose CPUID registers to userspace 2019-02-15 09:56:38 +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 Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
gdbstub.c arm: fix malloc type mismatch 2018-05-31 14:50:52 +01:00
helper-a64.c target/arm: Fix int128_make128 lo, hi order in paired_cmpxchg64_be 2019-02-15 09:56:38 +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: expose CPUID registers to userspace 2019-02-15 09:56:38 +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: Compute TB_FLAGS for TBI for user-only 2019-02-05 16:52:40 +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 Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
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 Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
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: Clean TBI for data operations in the translator 2019-02-05 16:52:40 +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: Add TBFLAG_A64_TBID, split out gen_top_byte_ignore 2019-02-05 16:52:39 +00:00
vec_helper.c target/arm: Implement SVE dot product (indexed) 2018-06-29 15:11:15 +01:00