setjmp.s 467 B

123456789101112131415161718192021222324
  1. TEXT setjmp(SB), 1, $-4
  2. MOV R2, 0(R8)
  3. MOV R1, XLEN(R8)
  4. MOV $0, R8
  5. RET
  6. TEXT sigsetjmp(SB), 1, $-4
  7. MOVW savemask+XLEN(FP), R10
  8. MOV R10, 0(R8)
  9. MOVW $_psigblocked(SB), R10
  10. MOV R10, XLEN(R8)
  11. MOV R2, (2*XLEN)(R8)
  12. MOV R1, (3*XLEN)(R8)
  13. MOV $0, R8
  14. RET
  15. TEXT longjmp(SB), 1, $-4
  16. MOVW r+XLEN(FP), R10
  17. BNE R10, ok /* ansi: "longjmp(0) => longjmp(1)" */
  18. MOV $1, R10 /* bless their pointed heads */
  19. ok: MOV 0(R8), R2
  20. MOV XLEN(R8), R1
  21. MOV R10, R8
  22. RET