Merge tag 'v3.3.7' into 3.3/master
[zen-stable.git] / arch / sparc / kernel / getsetcc.S
bloba14d272d2061123fc331b199e85e3a65f23c7bb5
1         .globl          getcc
2         .type           getcc,#function
3 getcc:
4         ldx             [%o0 + PT_V9_TSTATE], %o1
5         srlx            %o1, 32, %o1
6         and             %o1, 0xf, %o1
7         retl
8          stx            %o1, [%o0 + PT_V9_G1]
9         .size           getcc,.-getcc
11         .globl          setcc
12         .type           setcc,#function
13 setcc:
14         ldx             [%o0 + PT_V9_TSTATE], %o1
15         ldx             [%o0 + PT_V9_G1], %o2
16         or              %g0, %ulo(TSTATE_ICC), %o3
17         sllx            %o3, 32, %o3
18         andn            %o1, %o3, %o1
19         sllx            %o2, 32, %o2
20         and             %o2, %o3, %o2
21         or              %o1, %o2, %o1
22         retl
23          stx            %o1, [%o0 + PT_V9_TSTATE]
24         .size           setcc,.-setcc