atomic.S 296 B

123456789101112131415161718
  1. .text
  2. .globl ainc /* int32_t ainc(int32_t *); */
  3. ainc:
  4. li a1, 1
  5. amoadd.w.aq a0, a1, 0(a0)
  6. ret
  7. .globl adec /* int32_t adec(int32_t *); */
  8. adec:
  9. li a1, -1
  10. amoadd.w.aq a0, a1, 0(a0)
  11. ret
  12. .globl _tas /* int _tas(int *); */
  13. _tas:
  14. li a1, 1
  15. amoswap.w.aq a0, a1, 0(a0)
  16. ret