23 lines
789 B
ArmAsm
23 lines
789 B
ArmAsm
/* Pass a breakpoint through to Codescape */
|
|
|
|
#include <asm/tbx.h>
|
|
|
|
.text
|
|
.global ___TBIUnExpXXX
|
|
.type ___TBIUnExpXXX,function
|
|
___TBIUnExpXXX:
|
|
TSTT D0Ar2,#TBICTX_CRIT_BIT ! Result of nestable int call?
|
|
BZ $LTBINormCase ! UnExpXXX at background level
|
|
MOV D0Re0,TXMASKI ! Read TXMASKI
|
|
XOR TXMASKI,D1Re0,D1Re0 ! Turn off BGNDHALT handling!
|
|
OR D0Ar2,D0Ar2,D0Re0 ! Preserve bits cleared
|
|
$LTBINormCase:
|
|
MSETL [A0StP],D0Ar6,D0Ar4,D0Ar2 ! Save args on stack
|
|
SETL [A0StP++],D0Ar2,D1Ar1 ! Init area for returned values
|
|
SWITCH #0xC20208 ! Total stack frame size 8 Dwords
|
|
! write back size 2 Dwords
|
|
GETL D0Re0,D1Re0,[--A0StP] ! Get result
|
|
SUB A0StP,A0StP,#(8*3) ! Recover stack frame
|
|
MOV PC,D1RtP
|
|
.size ___TBIUnExpXXX,.-___TBIUnExpXXX
|