--- cci/d/event/raddr_evt.s 2019/07/28 12:24:19 1.1 +++ cci/d/event/raddr_evt.s 2019/07/28 12:30:55 1.1.1.2 @@ -24,7 +24,8 @@ _raddr_evt: movl $-1,-(sp) /* Push marker on stack */ movab _pcb0,r1 /* Init PCBB */ mtpr r1,$PCBB - addl3 $16,_savvec0,_pcb0 /* Set PCB_KSP = SP + 16 */ + mfpr $KSP,_savvec9 /* Save kernal stack pointer */ + mfpr $USP,_savveca /* Save user stack pointer */ movab resadr,r6 /* R6 = PC that failed */ movab table,r8 /* R8 = addr of object table */ trynext: @@ -81,6 +82,9 @@ radrmd: # 1: movl _savvec0,sp + mtpr _savvec0,$ISP /* restore Interrupt stack pointer */ + mtpr _savvec9,$KSP /* restore kernal stack pointer */ + mtpr _savveca,$USP /* restore user stack pointer */ movl _savvec2,_scb+RAVEC /* Restore reserved addr. mode vector */ ret #