home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / alde_c / misc / lib / dlibssrc / setjmp.s < prev    next >
Encoding:
Text File  |  1987-06-19  |  580 b   |  20 lines

  1. .globl _setjmp
  2. _setjmp:
  3.     move.l    $4(sp),a0        * address of jmp_buf[]
  4.     move.l    sp,(a0)+        * save stack pointer
  5.     move.l    a6,(a0)+        * save frame pointer
  6.     move.l    (sp),(a0)+        * save return address
  7.     movem.l    d2-d7/a2-a5,(a0)    * save registers
  8.     clr.l    d0            * return value is 0
  9.     rts
  10. .globl _longjmp
  11. _longjmp:
  12.     move.l    $4(sp),a0        * address of jmp_buf[]
  13.     move.w    $8(sp),d0        * value to return
  14.     ext.l    d0
  15.     move.l    (a0)+,sp        * restore stack pointer
  16.     move.l    (a0)+,a6        * restore frame pointer
  17.     move.l    (a0)+,(sp)        * restore return address
  18.     movem.l    (a0),d2-d7/a2-a5    * restore registers
  19.     rts
  20.