From 007a7f7857b3f14896167d136688d9f09598dd1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Fr=C3=B6schle?= Date: Wed, 6 Nov 2013 15:29:59 +0000 Subject: [PATCH] printout vector number during exception --- sources/exceptions.S | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/sources/exceptions.S b/sources/exceptions.S index b11e1fa..182f549 100644 --- a/sources/exceptions.S +++ b/sources/exceptions.S @@ -426,6 +426,22 @@ std_exc_vec: move.w 8(sp),d0 // fetch vector and.l #0x3fc,d0 // mask out vector number + + + // printout vector number of exception + + lea -4 * 4(sp),sp // reserve stack space + movem.l d0-d1/a0-a1,(sp) // save gcc scratch registers + + lsr.l #2,d0 // shift vector number in place + move.l d0,-(sp) // provide it to xprintf() + pea exception_text + jsr _xprintf // call xprintf() + addq.l #2*4,sp // adjust stack + + movem.l (sp),d0-d1/a0-a1 // restore registers + lea 4 * 4(sp),sp + add.l _rt_vbr,d0 // + VBR move.l d0,a5 move.l (a5),d0 // fetch exception routine address @@ -439,6 +455,13 @@ std_exc_vec: move.l (a7)+,d0 // restore d0 rts // jump to exception routine + .data +exception_text: + .ascii "EXCEPTION %d caught" + .byte 13, 10, 0 + + .text + #ifdef MACHINE_FIREBEE stv_protect: move.l usp,a5 // usp holen