qemu-e2k/target/arm
Peter Maydell 15126d9ce2 target/arm: Define the FEAT_FGT registers
Define the system registers which are provided by the
FEAT_FGT fine-grained trap architectural feature:
 HFGRTR_EL2, HFGWTR_EL2, HDFGRTR_EL2, HDFGWTR_EL2, HFGITR_EL2

All these registers are a set of bit fields, where each bit is set
for a trap and clear to not trap on a particular system register
access.  The R and W register pairs are for system registers,
allowing trapping to be done separately for reads and writes; the I
register is for system instructions where trapping is on instruction
execution.

The data storage in the CPU state struct is arranged as a set of
arrays rather than separate fields so that when we're looking up the
bits for a system register access we can just index into the array
rather than having to use a switch to select a named struct member.
The later FEAT_FGT2 will add extra elements to these arrays.

The field definitions for the new registers are in cpregs.h because
in practice the code that needs them is code that also needs
the cpregs information; cpu.h is included in a lot more files.
We're also going to add some FGT-specific definitions to cpregs.h
in the next commit.

We do not implement HAFGRTR_EL2, because we don't implement
FEAT_AMUv1.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Fuad Tabba <tabba@google.com>
Message-id: 20230130182459.3309057-9-peter.maydell@linaro.org
Message-id: 20230127175507.2895013-9-peter.maydell@linaro.org
2023-02-03 12:59:23 +00:00
..
hvf hvf: arm: Add support for GICv3 2023-02-03 12:59:22 +00:00
a32-uncond.decode
a32.decode
arch_dump.c dump: Replace opaque DumpState pointer with a typed one 2022-10-06 19:30:43 +04:00
arm_ldst.h
arm-powerctl.c
arm-powerctl.h
common-semi-target.h
cpregs.h target/arm: Define the FEAT_FGT registers 2023-02-03 12:59:23 +00:00
cpu64.c target/arm: cleanup cpu includes 2023-01-05 12:28:37 +00:00
cpu_tcg.c target/arm: Add ARM Cortex-R52 CPU 2023-01-05 11:51:09 +00:00
cpu-param.h target/arm: Enable TARGET_TB_PCREL 2022-10-20 11:28:29 +01:00
cpu-qom.h target/arm: Convert to 3-phase reset 2022-12-16 15:58:15 +00:00
cpu.c target/arm: cleanup cpu includes 2023-01-05 12:28:37 +00:00
cpu.h target/arm: Define the FEAT_FGT registers 2023-02-03 12:59:23 +00:00
crypto_helper.c
debug_helper.c target/arm: provide stubs for more external debug registers 2023-01-23 13:32:38 +00:00
gdbstub64.c
gdbstub.c
helper-a64.c
helper-a64.h
helper-mve.h
helper-sme.h target/arm/sme: Unify set_pstate() SM/ZA helpers as set_svcr() 2023-01-23 13:32:38 +00:00
helper-sve.h
helper.c target/arm: Define the FEAT_FGT registers 2023-02-03 12:59:23 +00:00
helper.h target/arm: Look up ARMCPRegInfo at runtime 2023-01-23 13:32:38 +00:00
hvf_arm.h
idau.h Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
internals.h target/arm: Enable TTBCR_EAE for ARMv8-R AArch32 2023-01-05 11:51:09 +00:00
iwmmxt_helper.c
Kconfig
kvm64.c
kvm_arm.h
kvm-consts.h hw/misc: Move some arm-related files from specific_ss into softmmu_ss 2022-12-15 17:37:47 +00:00
kvm-stub.c target/arm: Avoid bare abort() or assert(0) 2022-05-05 09:35:51 +01:00
kvm.c * scsi-disk: support setting CD-ROM block size via device options 2022-10-13 13:55:03 -04:00
m_helper.c target/arm: Don't set EXC_RETURN.ES if Security Extension not present 2023-01-23 13:32:38 +00:00
m-nocp.decode
machine.c target/arm: Add PMSAv8r registers 2023-01-05 11:51:09 +00:00
meson.build
monitor.c qapi machine: Elide redundant has_FOO in generated C 2022-12-14 20:04:47 +01:00
mte_helper.c target/arm: Fix physical address resolution for MTE 2023-01-23 13:32:38 +00:00
mve_helper.c
mve.decode
neon_helper.c
neon-dp.decode
neon-ls.decode
neon-shared.decode
op_addsub.h
op_helper.c target/arm: Disable HSTR_EL2 traps if EL2 is not enabled 2023-02-03 12:59:22 +00:00
pauth_helper.c
psci.c
ptw.c target/arm: Fix physical address resolution for Stage2 2023-02-03 12:59:21 +00:00
sme_helper.c target/arm/sme: Unify set_pstate() SM/ZA helpers as set_svcr() 2023-01-23 13:32:38 +00:00
sme-fa64.decode
sme.decode
sve_helper.c target/arm: Fix sve_probe_page 2023-01-12 16:50:19 +00:00
sve_ldst_internal.h target/arm: Use probe_access_full for MTE 2022-10-20 11:27:49 +01:00
sve.decode
syndrome.h
t16.decode
t32.decode
tlb_helper.c target/arm: Enable TTBCR_EAE for ARMv8-R AArch32 2023-01-05 11:51:09 +00:00
trace-events
trace.h
translate-a32.h target/arm: Change gen_*set_pc_im to gen_*update_pc 2022-10-20 11:27:52 +01:00
translate-a64.c target/arm: Look up ARMCPRegInfo at runtime 2023-01-23 13:32:38 +00:00
translate-a64.h
translate-m-nocp.c target/arm: Enable TARGET_TB_PCREL 2022-10-20 11:28:29 +01:00
translate-mve.c target/arm: Change gen_exception_insn* to work on displacements 2022-10-20 11:27:52 +01:00
translate-neon.c target/arm: Fix alignment for VLD4.32 2022-09-22 16:38:27 +01:00
translate-sme.c
translate-sve.c
translate-vfp.c target/arm: Change gen_exception_insn* to work on displacements 2022-10-20 11:27:52 +01:00
translate.c target/arm: Make HSTR_EL2 traps take priority over UNDEF-at-EL1 2023-02-03 12:59:22 +00:00
translate.h target/arm: Look up ARMCPRegInfo at runtime 2023-01-23 13:32:38 +00:00
vec_helper.c
vec_internal.h
vfp_helper.c
vfp-uncond.decode
vfp.decode