home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 316 / libsrc / setjmp.s < prev    next >
Encoding:
Text File  |  1988-10-20  |  633 b   |  24 lines

  1. #
  2. # this setjmp adapted from the DLIBS one by jrd
  3. #
  4. .text
  5. .globl _setjmp
  6. _setjmp:
  7.     movel    sp@(4),a0        | address of jmp_buf[]
  8.     movel    sp,a0@+            | save stack pointer
  9.     movel    a6,a0@+            | save frame pointer
  10.     movel    sp@,a0@+        | save return address
  11.     moveml    #0x3CFC,a0@        | save registers d2-d7/a2-a5
  12.     clrl    d0            | return value is 0
  13.     rts
  14.  
  15. .globl _longjmp
  16. _longjmp:
  17.     movel    sp@(4),a0        | address of jmp_buf[]
  18.     movel    sp@(8),d0        | value to return
  19.     movel    a0@+,sp            | restore stack pointer
  20.     movel    a0@+,a6            | restore frame pointer
  21.     movel    a0@+,sp@        | restore return address
  22.     moveml    a0@,#0x3CFC        | restore registers d2-d7/a2-a5
  23.     rts
  24.