linux/arch/sparc/kernel/getsetcc.S
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2        .globl          getcc
   3        .type           getcc,#function
   4getcc:
   5        ldx             [%o0 + PT_V9_TSTATE], %o1
   6        srlx            %o1, 32, %o1
   7        and             %o1, 0xf, %o1
   8        retl
   9         stx            %o1, [%o0 + PT_V9_G1]
  10        .size           getcc,.-getcc
  11
  12        .globl          setcc
  13        .type           setcc,#function
  14setcc:
  15        ldx             [%o0 + PT_V9_TSTATE], %o1
  16        ldx             [%o0 + PT_V9_G1], %o2
  17        or              %g0, %ulo(TSTATE_ICC), %o3
  18        sllx            %o3, 32, %o3
  19        andn            %o1, %o3, %o1
  20        sllx            %o2, 32, %o2
  21        and             %o2, %o3, %o2
  22        or              %o1, %o2, %o1
  23        retl
  24         stx            %o1, [%o0 + PT_V9_TSTATE]
  25        .size           setcc,.-setcc
  26