On 10/6/25 02:57, Julian Ganz wrote:
@@ -212,6 +214,48 @@ void hppa_cpu_do_interrupt(CPUState *cs)
env->iasq_f = 0;
env->iasq_b = 0;
+ switch (i) {
+ case EXCP_HPMC:
+ case EXCP_POWER_FAIL:
+ case EXCP_RC:
+ case EXCP_EXT_INTERRUPT:
+ case EXCP_LPMC:
+ case EXCP_PER_INTERRUPT:
+ case EXCP_TOC:
+ qemu_plugin_vcpu_interrupt_cb(cs, last_pc);
+ break;
+ case EXCP_ITLB_MISS:
+ case EXCP_IMP:
+ case EXCP_ILL:
+ case EXCP_BREAK:
+ case EXCP_PRIV_OPR:
+ case EXCP_PRIV_REG:
+ case EXCP_OVERFLOW:
+ case EXCP_COND:
+ case EXCP_ASSIST:
+ case EXCP_DTLB_MISS:
+ case EXCP_NA_ITLB_MISS:
+ case EXCP_NA_DTLB_MISS:
+ case EXCP_DMP:
+ case EXCP_DMB:
+ case EXCP_TLB_DIRTY:
+ case EXCP_PAGE_REF:
+ case EXCP_ASSIST_EMU:
+ case EXCP_HPT:
+ case EXCP_LPT:
+ case EXCP_TB:
+ case EXCP_DMAR:
+ case EXCP_DMPI:
+ case EXCP_UNALIGN:
+ case EXCP_SYSCALL:
+ case EXCP_SYSCALL_LWS:
These last two are linux-user syscalls. Don't you want hostcall?
+ qemu_plugin_vcpu_exception_cb(cs, last_pc);
+ break;
+ default:
+ qemu_plugin_vcpu_interrupt_cb(cs, last_pc);
g_assert_not_reached().
r~