tbiunexp.S 789 B

12345678910111213141516171819202122
  1. /* Pass a breakpoint through to Codescape */
  2. #include <asm/tbx.h>
  3. .text
  4. .global ___TBIUnExpXXX
  5. .type ___TBIUnExpXXX,function
  6. ___TBIUnExpXXX:
  7. TSTT D0Ar2,#TBICTX_CRIT_BIT ! Result of nestable int call?
  8. BZ $LTBINormCase ! UnExpXXX at background level
  9. MOV D0Re0,TXMASKI ! Read TXMASKI
  10. XOR TXMASKI,D1Re0,D1Re0 ! Turn off BGNDHALT handling!
  11. OR D0Ar2,D0Ar2,D0Re0 ! Preserve bits cleared
  12. $LTBINormCase:
  13. MSETL [A0StP],D0Ar6,D0Ar4,D0Ar2 ! Save args on stack
  14. SETL [A0StP++],D0Ar2,D1Ar1 ! Init area for returned values
  15. SWITCH #0xC20208 ! Total stack frame size 8 Dwords
  16. ! write back size 2 Dwords
  17. GETL D0Re0,D1Re0,[--A0StP] ! Get result
  18. SUB A0StP,A0StP,#(8*3) ! Recover stack frame
  19. MOV PC,D1RtP
  20. .size ___TBIUnExpXXX,.-___TBIUnExpXXX