Subversion Repositories HelenOS-historic

Rev

Rev 1100 | Rev 1126 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1100 Rev 1119
Line 81... Line 81...
81
{
81
{
82
    print_regdump(istate);
82
    print_regdump(istate);
83
    panic("unhandled exception %s\n", exctable[n]);
83
    panic("unhandled exception %s\n", exctable[n]);
84
}
84
}
85
 
85
 
-
 
86
static void reserved_instr_exception(int n, istate_t *istate)
-
 
87
{
-
 
88
    if (*((__u32 *)istate->epc) == 0x7c03e83b) {
-
 
89
        ASSERT(THREAD);
-
 
90
        istate->epc += 4;
-
 
91
        istate->v1 = istate->k1;
-
 
92
    } else {
-
 
93
        print_regdump(istate);
-
 
94
        panic("reserved instruction");
-
 
95
    }
-
 
96
}
-
 
97
 
86
static void breakpoint_exception(int n, istate_t *istate)
98
static void breakpoint_exception(int n, istate_t *istate)
87
{
99
{
88
#ifdef CONFIG_DEBUG
100
#ifdef CONFIG_DEBUG
89
    debugger_bpoint(istate);
101
    debugger_bpoint(istate);
90
#else
102
#else
Line 140... Line 152...
140
 
152
 
141
    /* Clear exception table */
153
    /* Clear exception table */
142
    for (i=0;i < IVT_ITEMS; i++)
154
    for (i=0;i < IVT_ITEMS; i++)
143
        exc_register(i, "undef", (iroutine) unhandled_exception);
155
        exc_register(i, "undef", (iroutine) unhandled_exception);
144
    exc_register(EXC_Bp, "bkpoint", (iroutine) breakpoint_exception);
156
    exc_register(EXC_Bp, "bkpoint", (iroutine) breakpoint_exception);
-
 
157
    exc_register(EXC_RI, "resinstr", (iroutine) reserved_instr_exception);
145
    exc_register(EXC_Mod, "tlb_mod", (iroutine) tlbmod_exception);
158
    exc_register(EXC_Mod, "tlb_mod", (iroutine) tlbmod_exception);
146
    exc_register(EXC_TLBL, "tlbinvl", (iroutine) tlbinv_exception);
159
    exc_register(EXC_TLBL, "tlbinvl", (iroutine) tlbinv_exception);
147
    exc_register(EXC_TLBS, "tlbinvl", (iroutine) tlbinv_exception);
160
    exc_register(EXC_TLBS, "tlbinvl", (iroutine) tlbinv_exception);
148
    exc_register(EXC_Int, "interrupt", (iroutine) interrupt_exception);
161
    exc_register(EXC_Int, "interrupt", (iroutine) interrupt_exception);
149
#ifdef CONFIG_FPU_LAZY
162
#ifdef CONFIG_FPU_LAZY