/* Signal an interruption. It is executed in the main CPU loop. is_int is TRUE if coming from the int instruction. next_eip is the env->eip value AFTER the interrupt instruction. It is only relevant if is_int is TRUE.  */
static void QEMU_NORETURN raise_interrupt2(CPUX86State *env, int intno, int is_int, int error_code, int next_eip_addend)
/* Signal an interruption. It is executed in the main CPU loop. is_int is TRUE if coming from the int instruction. next_eip is the env->eip value AFTER the interrupt instruction. It is only relevant if is_int is TRUE.  */
static void QEMU_NORETURN raise_interrupt2(CPUX86State *env, int intno, int is_int, int error_code, int next_eip_addend)
{
    CPUState *cs = CPU(x86_env_get_cpu(env));
    if (!is_int) {
        cpu_svm_check_intercept_param(env, SVM_EXIT_EXCP_BASE + intno,
                                      error_code);
        intno = check_exception(env, intno, &error_code);
    } else {
        cpu_svm_check_intercept_param(env, SVM_EXIT_SWINT, 0);
    }
    cs->exception_index = intno;
    env->error_code = error_code;
    env->exception_is_int = is_int;
    env->exception_next_eip = env->eip + next_eip_addend;
    cpu_loop_exit(cs);
}