39,12 → 39,22 |
#include <arch/asm.h> |
#include <debug.h> |
#include <typedefs.h> |
#include <symtab.h> |
#include <print.h> |
|
void dump_istate(istate_t *istate) |
{ |
printf("TSTATE=%#llx\n", istate->tstate); |
printf("TPC=%#llx (%s)\n", istate->tpc, get_symtab_entry(istate->tpc)); |
printf("TNPC=%#llx (%s)\n", istate->tnpc, get_symtab_entry(istate->tnpc)); |
} |
|
/** Handle instruction_access_exception. (0x8) */ |
void instruction_access_exception(int n, istate_t *istate) |
{ |
fault_if_from_uspace(istate, "%s\n", __FUNCTION__); |
panic("%s at %p.\n", __FUNCTION__, istate->tpc); |
dump_istate(istate); |
panic("%s\n", __FUNCTION__); |
} |
|
/** Handle instruction_access_error. (0xa) */ |
51,7 → 61,8 |
void instruction_access_error(int n, istate_t *istate) |
{ |
fault_if_from_uspace(istate, "%s\n", __FUNCTION__); |
panic("%s at %p.\n", __FUNCTION__, istate->tpc); |
dump_istate(istate); |
panic("%s\n", __FUNCTION__); |
} |
|
/** Handle illegal_instruction. (0x10) */ |
58,7 → 69,8 |
void illegal_instruction(int n, istate_t *istate) |
{ |
fault_if_from_uspace(istate, "%s\n", __FUNCTION__); |
panic("%s at %p.\n", __FUNCTION__, istate->tpc); |
dump_istate(istate); |
panic("%s\n", __FUNCTION__); |
} |
|
/** Handle privileged_opcode. (0x11) */ |
65,7 → 77,8 |
void privileged_opcode(int n, istate_t *istate) |
{ |
fault_if_from_uspace(istate, "%s\n", __FUNCTION__); |
panic("%s at %p.\n", __FUNCTION__, istate->tpc); |
dump_istate(istate); |
panic("%s\n", __FUNCTION__); |
} |
|
/** Handle division_by_zero. (0x28) */ |
72,7 → 85,8 |
void division_by_zero(int n, istate_t *istate) |
{ |
fault_if_from_uspace(istate, "%s\n", __FUNCTION__); |
panic("%s at %p.\n", __FUNCTION__, istate->tpc); |
dump_istate(istate); |
panic("%s\n", __FUNCTION__); |
} |
|
/** Handle data_access_exception. (0x30) */ |
79,7 → 93,8 |
void data_access_exception(int n, istate_t *istate) |
{ |
fault_if_from_uspace(istate, "%s\n", __FUNCTION__); |
panic("%s from %p.\n", __FUNCTION__, istate->tpc); |
dump_istate(istate); |
panic("%s\n", __FUNCTION__); |
} |
|
/** Handle data_access_error. (0x32) */ |
86,7 → 101,8 |
void data_access_error(int n, istate_t *istate) |
{ |
fault_if_from_uspace(istate, "%s\n", __FUNCTION__); |
panic("%s from %p.\n", __FUNCTION__, istate->tpc); |
dump_istate(istate); |
panic("%s\n", __FUNCTION__); |
} |
|
/** Handle mem_address_not_aligned. (0x34) */ |
93,7 → 109,8 |
void mem_address_not_aligned(int n, istate_t *istate) |
{ |
fault_if_from_uspace(istate, "%s\n", __FUNCTION__); |
panic("%s from %p.\n", __FUNCTION__, istate->tpc); |
dump_istate(istate); |
panic("%s\n", __FUNCTION__); |
} |
|
/** Handle privileged_action. (0x37) */ |
100,7 → 117,8 |
void privileged_action(int n, istate_t *istate) |
{ |
fault_if_from_uspace(istate, "%s\n", __FUNCTION__); |
panic("%s at %p.\n", __FUNCTION__, istate->tpc); |
dump_istate(istate); |
panic("%s\n", __FUNCTION__); |
} |
|
/** @} |