;Branch_thru_zero
;----------------
;Report a branch to &0
;
;NOTE: Could be entered in any CPU mode

.Branch_thru_zero
 STMFD   R13!, {R14}
 ADR     R14, DAV_r0			;buffer for registers
 STR     R0, [R14], #4
 MOV     R0, R14
 LDMFD   R13!, {R14}

 STMIA   R0!, {R1-R14}			;store registers
 MOV     R2, #0				;report from 0 as we dont know what
 STR     R2, [R0, #0]			;..PC was before branching to zero

 MRS     R1, SPSR			;get original CPU state
 TST     R1, #%1111			;is abort in User mode?
 SWIEQ   XOS_EnterOS			;YES, switch to SVC
 TEMP    R2
 STR     R1, DAV_CPSR
 LOCK    R2

 MOV     R12, #&10			;ADFF5010
B       report_unimplemented		;report it
