17.4.2 General Exception
A general exception is any non-interrupt exception which occurs during program execution
outside of bootstrap code (StatusBEV=0). General exceptions
are vectored to offset 0x180 from EBase.
At this location, the 32-bit toolchain places a branch instruction targeting a function
named _general_exception_context(). The provided implementation of
this function saves context, calls an application handler function, restores context and
performs a return from the exception instruction. The context saved is the
hi and lo registers, and all General Purpose
Registers except s0-s8, which are defined to be preserved by all called
functions and so are not necessary to actively save here again.
void _general_exception_handler (void);
A weak default implementation of _general_exception_handler() is
provided in the standard library which merely causes a software Reset. When compiling
for in-circuit debugging or emulation, the default implementation of
_general_exception_handler will first cause a software breakpoint
and then a software Reset. If the user application provides an implementation of
_general_exception_handler(), that implementation will be used
instead.
