2019-03-10 15:45:34 +01:00
|
|
|
/*
|
2021-04-28 17:53:19 +02:00
|
|
|
** gint:dma:inth - DMA address error handler
|
|
|
|
** A particular handler that jumps into a panic.
|
2019-03-10 15:45:34 +01:00
|
|
|
*/
|
|
|
|
|
2021-04-28 17:53:19 +02:00
|
|
|
.global _inth_dma_ae /* 32 bytes */
|
|
|
|
|
2019-03-10 15:45:34 +01:00
|
|
|
.section .gint.blocks, "ax"
|
|
|
|
.align 4
|
|
|
|
|
2021-04-28 17:53:19 +02:00
|
|
|
/* DMA ADDRESS ERROR INTERRUPT HANDLER - 22 BYTES */
|
2019-08-27 21:18:44 +02:00
|
|
|
|
|
|
|
_inth_dma_ae:
|
2019-09-13 08:10:30 +02:00
|
|
|
/* Manually RTE into the panic routine, preserving SPC */
|
|
|
|
mov.l 2f, r4
|
|
|
|
ldc r4, r4_bank
|
2019-08-27 21:18:44 +02:00
|
|
|
|
2019-09-13 08:10:30 +02:00
|
|
|
/* This instruction changes register bank! */
|
|
|
|
stc ssr, r1
|
|
|
|
ldc r1, sr
|
|
|
|
|
|
|
|
mov.l 1f, r0
|
|
|
|
jmp @r0
|
2019-08-27 21:18:44 +02:00
|
|
|
nop
|
|
|
|
|
2019-09-13 08:10:30 +02:00
|
|
|
.zero 10
|
2019-08-27 21:18:44 +02:00
|
|
|
|
2019-09-13 08:10:30 +02:00
|
|
|
1: .long _gint_panic
|
|
|
|
2: .long 0x1020
|