target/i386: Added ignore TPR check in ctl_has_irq

The APM2 states that if V_IGN_TPR is nonzero, the current
virtual interrupt ignores the (virtual) TPR.

Signed-off-by: Lara Lazier <laramglazier@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
master
Lara Lazier 2021-08-17 19:30:45 +02:00 committed by Paolo Bonzini
parent b67e2796a1
commit 66a0201ba7
1 changed files with 5 additions and 0 deletions

View File

@ -83,6 +83,11 @@ static inline bool ctl_has_irq(CPUX86State *env)
int_prio = (env->int_ctl & V_INTR_PRIO_MASK) >> V_INTR_PRIO_SHIFT;
tpr = env->int_ctl & V_TPR_MASK;
if (env->int_ctl & V_IGN_TPR_MASK) {
return env->int_ctl & V_IRQ_MASK;
}
return (env->int_ctl & V_IRQ_MASK) && (int_prio >= tpr);
}