mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
target/arm: Add pre-EL change hooks
Because the design of the PMU requires that the counter values be converted between their delta and guest-visible forms for mode filtering, an additional hook which occurs before the EL is changed is necessary. Signed-off-by: Aaron Lindsay <alindsay@codeaurora.org> Message-id: 1523997485-1905-8-git-send-email-alindsay@codeaurora.org Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
08267487c9
commit
b5c53d1b38
5 changed files with 58 additions and 9 deletions
|
@ -8249,6 +8249,14 @@ void arm_cpu_do_interrupt(CPUState *cs)
|
|||
return;
|
||||
}
|
||||
|
||||
/* Hooks may change global state so BQL should be held, also the
|
||||
* BQL needs to be held for any modification of
|
||||
* cs->interrupt_request.
|
||||
*/
|
||||
g_assert(qemu_mutex_iothread_locked());
|
||||
|
||||
arm_call_pre_el_change_hook(cpu);
|
||||
|
||||
assert(!excp_is_internal(cs->exception_index));
|
||||
if (arm_el_is_aa64(env, new_el)) {
|
||||
arm_cpu_do_interrupt_aarch64(cs);
|
||||
|
@ -8256,12 +8264,6 @@ void arm_cpu_do_interrupt(CPUState *cs)
|
|||
arm_cpu_do_interrupt_aarch32(cs);
|
||||
}
|
||||
|
||||
/* Hooks may change global state so BQL should be held, also the
|
||||
* BQL needs to be held for any modification of
|
||||
* cs->interrupt_request.
|
||||
*/
|
||||
g_assert(qemu_mutex_iothread_locked());
|
||||
|
||||
arm_call_el_change_hook(cpu);
|
||||
|
||||
if (!kvm_enabled()) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue