Revision 63a54736

b/target-i386/exec.h
73 73
                       target_ulong next_eip);
74 74
void QEMU_NORETURN raise_exception_err(int exception_index, int error_code);
75 75
void QEMU_NORETURN raise_exception(int exception_index);
76
void QEMU_NORETURN raise_exception_env(int exception_index, CPUState *nenv);
76 77
void do_smm_enter(void);
77 78

  
78 79
/* n must be a constant to be efficient */
b/target-i386/helper.c
1862 1862

  
1863 1863
static CPUDebugExcpHandler *prev_debug_excp_handler;
1864 1864

  
1865
void raise_exception(int exception_index);
1865
void raise_exception_env(int exception_index, CPUState *env);
1866 1866

  
1867 1867
static void breakpoint_handler(CPUState *env)
1868 1868
{
......
1872 1872
        if (env->watchpoint_hit->flags & BP_CPU) {
1873 1873
            env->watchpoint_hit = NULL;
1874 1874
            if (check_hw_breakpoints(env, 0))
1875
                raise_exception(EXCP01_DB);
1875
                raise_exception_env(EXCP01_DB, env);
1876 1876
            else
1877 1877
                cpu_resume_from_signal(env, NULL);
1878 1878
        }
......
1881 1881
            if (bp->pc == env->eip) {
1882 1882
                if (bp->flags & BP_CPU) {
1883 1883
                    check_hw_breakpoints(env, 1);
1884
                    raise_exception(EXCP01_DB);
1884
                    raise_exception_env(EXCP01_DB, env);
1885 1885
                }
1886 1886
                break;
1887 1887
            }
b/target-i386/op_helper.c
1351 1351
    raise_interrupt(exception_index, 0, 0, 0);
1352 1352
}
1353 1353

  
1354
void raise_exception_env(int exception_index, CPUState *nenv)
1355
{
1356
    env = nenv;
1357
    raise_exception(exception_index);
1358
}
1354 1359
/* SMM support */
1355 1360

  
1356 1361
#if defined(CONFIG_USER_ONLY)

Also available in: Unified diff