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