setjmp.s 381 B

12345678910111213141516171819
  1. link=64
  2. sp=65
  3. arg=69
  4. TEXT setjmp(SB), 1, $-4
  5. MOVL R(sp), (R(arg+0))
  6. MOVL R(link), 4(R(arg+0))
  7. MOVL $0, R1
  8. RET
  9. TEXT longjmp(SB), 1, $-4
  10. MOVL r+4(FP), R(arg+2)
  11. CPNEQL $0, R(arg+2)
  12. JMPT R(arg+2), ok /* ansi: "longjmp(0) => longjmp(1)" */
  13. MOVL $1, R(arg+2) /* bless their pointed heads */
  14. ok: MOVL (R(arg+0)), R(sp)
  15. MOVL 4(R(arg+0)), R(link)
  16. MOVL R(arg+2), R(arg+0)
  17. RET