1: / C library -- setjmp, longjmp
   2: 
   3: /	longjmp(a,v)
   4: / will generate a "return(v)" from
   5: / the last call to
   6: /	setjmp(a)
   7: / by restoring sp, r5, pc from `a'
   8: / and doing a return.
   9: /
  10: 
  11: .globl  _setjmp
  12: .globl  _longjmp
  13: .globl  csv, cret
  14: 
  15: _setjmp:
  16:         mov     2(sp),r0
  17:         mov     r5,(r0)+
  18:         mov     sp,(r0)+
  19:         mov     (sp),(r0)
  20:         clr     r0
  21:         rts     pc
  22: 
  23: _longjmp:
  24:         jsr     r5,csv
  25:         mov     4(r5),r1
  26:         mov     6(r5),r0
  27:         bne     1f
  28:         mov     $1,r0
  29: 1:
  30:         cmp     (r5),(r1)
  31:         beq     1f
  32:         mov     (r5),r5
  33:         bne     1b
  34: / panic -- r2-r4 lost
  35:         mov     (r1)+,r5
  36:         mov     (r1)+,sp
  37:         mov     (r1),(sp)
  38:         rts     pc
  39: 1:
  40:         mov     4(r1),2(r5)
  41:         jmp     cret
Last modified: 1979-01-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 411
Valid CSS Valid XHTML 1.0 Strict