getsetcc.S 514 B

12345678910111213141516171819202122232425
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. .globl getcc
  3. .type getcc,#function
  4. getcc:
  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. .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