atomic.S 382 B

1234567891011121314151617181920212223
  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
  17. .globl aswap /* int aswap(int *, int); */
  18. aswap:
  19. amoswap.w.aq a0, a1, 0(a0)
  20. ret