Lines Matching full:exception
2 * Low-level exception handling
99 /* ----------------- DEFAULT FIRST LEVEL EXCEPTION HANDLERS ----------------- */
102 * First-level exception handler for user exceptions.
105 * exception code.
118 * PT_DEPC >= VALID_DOUBLE_EXCEPTION_ADDRESS: double exception, DEPC
119 * < VALID_DOUBLE_EXCEPTION_ADDRESS: regular exception
243 2: /* Now, jump to the common exception handler. */
253 * MOVSP here, as we do that when we return from the exception.
254 * (See comment in the kernel exception exit code)
265 * PT_DEPC >= VALID_DOUBLE_EXCEPTION_ADDRESS: double exception, DEPC
266 * < VALID_DOUBLE_EXCEPTION_ADDRESS: regular exception
330 * in order to keep exception stack continuous
350 * This is the common exception handler.
351 * We get here from the user exception handler or simply by falling through
352 * from the kernel exception handler.
354 * to the second-level exception handler.
403 * - in case of exception or level-1 interrupt it's in the PS,
460 * exception handler and call the exception handler.
473 /* Jump here for exception exit */
495 /* Specific to a user exception exit:
581 /* Restore the state of the task and return from the exception. */
646 /* This is the kernel exception exit.
647 * We avoided to do a MOVSP when we entered the exception, but we
656 * been spilled to the *temporary* exception stack instead of the
670 * different from the time the exception occurred.)
673 /* Test WINDOWSTART before and after the exception.
678 _beqi a2, 1, common_exception_exit # Spilled before exception,jump
699 /* Common exception exit.
701 * return from the exception.
750 /* Check if it was double exception. */
771 * Debug exception handler.
783 bbsi.l a0, PS_EXCM_BIT, 1f # exception mode
810 s32i a0, a2, PT_DEPC # mark it as a regular exception
817 /* Debug exception is handled as an exception, so interrupts will
818 * likely be enabled in the common exception handler. Disable
838 /* Debug exception while in exception mode. This may happen when
839 * window overflow/underflow handler or fast exception handler hits
888 /* Debug exception while in exception mode. Should not happen. */
895 * We get here in case of an unrecoverable exception.
917 .ascii "Unrecoverable error in exception handler\0"
945 /* -------------------------- FAST EXCEPTION HANDLERS ----------------------- */
961 * double exceptions. The 'movsp' instruction will only cause an exception if
962 * the next window needs to be loaded. In fact this ALLOCA exception may be
963 * replaced at some point by changing the hardware to do a underflow exception
967 * exception handler, makes it appear that we have started a window underflow
971 * active AR registers it won't cause an exception.
974 * the partial WindowUnderflow will be handled in the double exception
986 * PT_DEPC >= VALID_DOUBLE_EXCEPTION_ADDRESS: double exception, DEPC
987 * < VALID_DOUBLE_EXCEPTION_ADDRESS: regular exception
1018 * This is used to fix up user PS.WOE on the exception caused
1020 * already set it goes directly to the common user exception handler.
1119 * PT_DEPC >= VALID_DOUBLE_EXCEPTION_ADDRESS: double exception, DEPC
1120 * < VALID_DOUBLE_EXCEPTION_ADDRESS: regular exception
1368 /* Advance PC, restore registers and SAR, and return from exception. */
1424 * We get here if the spill routine causes an exception, e.g. tlb miss.
1426 * we entered the spill routine and jump to the user exception handler.
1448 * in WS, so that the exception handlers save them to the task stack.
1452 * the exception handler call.
1487 * depc: exception address
1502 /* Jump to the exception handler. */
1517 wsr a2, depc # exception address
1529 /* Load WB at the time the exception occurred. */
1584 * PT_DEPC >= VALID_DOUBLE_EXCEPTION_ADDRESS: double exception, DEPC
1585 * < VALID_DOUBLE_EXCEPTION_ADDRESS: regular exception
1590 /* Save a1 and a3. Note: we don't expect a double exception. */
1684 /* Return from double exception. */
1709 /* We shouldn't be in a double exception */
1714 /* Make sure the exception originated in the special functions */
1767 2: /* Invalid PGD, default exception handling */
1794 * PT_DEPC >= VALID_DOUBLE_EXCEPTION_ADDRESS: double exception, DEPC
1795 * < VALID_DOUBLE_EXCEPTION_ADDRESS: regular exception
1855 /* Double exception. Restore FIXUP handler and return. */