qemu-e2k/target/arm
Philippe Mathieu-Daudé 2412813286 target/arm: Ensure icount is enabled when emulating INST_RETIRED
pmu_init() register its event checking the pm_event::supported()
handler. For INST_RETIRED, the event is only registered and the
bit enabled in the PMU Common Event Identification register when
icount is enabled as ICOUNT_PRECISE.

PMU events are TCG-only, hardware accelerators handle them
directly. Unfortunately we register the events in non-TCG builds,
leading to linking error such:

  ld: Undefined symbols:
    _icount_to_ns, referenced from:
      _instructions_ns_per in target_arm_helper.c.o
  clang: error: linker command failed with exit code 1 (use -v to see invocation)

As a kludge, give a hint to the compiler by asserting the
pm_event::get_count() and pm_event::ns_per_count() handler will
only be called under this icount mode.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20231208113529.74067-5-philmd@linaro.org>
2024-01-19 12:28:59 +01:00
..
hvf system/cpus: rename qemu_mutex_lock_iothread() to bql_lock() 2024-01-08 10:45:43 -05:00
tcg target/arm: Add FEAT_NV2 to max, neoverse-n2, neoverse-v1 CPUs 2024-01-09 14:44:45 +00:00
arch_dump.c
arm-powerctl.c system/cpus: rename qemu_mutex_lock_iothread() to bql_lock() 2024-01-08 10:45:43 -05:00
arm-powerctl.h
arm-qmp-cmds.c target: Use generic cpu_model_from_type() 2024-01-05 16:20:14 +01:00
common-semi-target.h
cortex-regs.c
cpregs.h target/arm: Implement FEAT_NV2 redirection of sysregs to RAM 2024-01-09 14:43:53 +00:00
cpu64.c target/arm/kvm: Have kvm_arm_sve_get_vls take a ARMCPU argument 2023-12-19 17:57:45 +00:00
cpu-features.h target/arm: Handle HCR_EL2 accesses for FEAT_NV2 bits 2024-01-09 14:43:52 +00:00
cpu-param.h
cpu-qom.h target: Move ArchCPUClass definition to 'cpu.h' 2023-11-07 13:08:48 +01:00
cpu.c accel: Do not set CPUState::tcg_cflags in non-TCG accels 2024-01-19 12:28:59 +01:00
cpu.h target/arm: Report VNCR_EL2 based faults correctly 2024-01-09 14:44:45 +00:00
debug_helper.c target/arm: Mark up VNCR offsets (offsets 0x100..0x160) 2024-01-09 14:44:45 +00:00
gdbstub64.c
gdbstub.c
helper.c target/arm: Ensure icount is enabled when emulating INST_RETIRED 2024-01-19 12:28:59 +01:00
helper.h
hvf_arm.h
hyp_gdbstub.c
idau.h
internals.h Replace "iothread lock" with "BQL" in comments 2024-01-08 10:45:43 -05:00
Kconfig
kvm_arm.h target/arm/kvm: Have kvm_arm_pmu_set_irq take a ARMCPU argument 2023-12-19 17:57:46 +00:00
kvm-consts.h
kvm-stub.c
kvm.c system/cpus: rename qemu_mutex_lock_iothread() to bql_lock() 2024-01-08 10:45:43 -05:00
machine.c target/arm: Constify VMState in machine.c 2023-12-29 11:17:30 +11:00
meson.build meson: rename config_all 2023-12-31 09:11:28 +01:00
op_addsub.h
ptw.c target/arm: arm_pamax() no longer needs to do feature propagation 2024-01-15 17:12:22 +00:00
syndrome.h target/arm: Report VNCR_EL2 based faults correctly 2024-01-09 14:44:45 +00:00
tcg-stubs.c
trace-events
trace.h
vfp_helper.c