home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sa104os2.zip / SATHR104.ZIP / SATHER / SYSTEM / GC / SPARCDEP.S < prev    next >
Text File  |  1993-12-01  |  852b  |  38 lines

  1. !    SPARCompiler 3.0 and later apparently no loner handles
  2. !    asm outside functions.  So we need a separate .s file
  3. !    This is only set up for SunOS 5, not SunOS 4.
  4. !    Assumes this is called before the stack contents are
  5. !    examined.
  6.  
  7.     .seg     "text"
  8.     .globl    GC_save_regs_in_stack
  9.     .globl     GC_push_regs
  10. GC_save_regs_in_stack:
  11. GC_push_regs:
  12.     ta    0x3   ! ST_FLUSH_WINDOWS
  13.     mov    %sp,%o0
  14.     retl
  15.     nop
  16.     
  17.     .globl    GC_clear_stack_inner
  18. GC_clear_stack_inner:
  19.     mov    %sp,%o2        ! Save sp
  20.     add    %sp,-8,%o3    ! p = sp-8
  21.     clr    %g1        ! [g0,g1] = 0
  22.     add    %o1,-0x60,%sp    ! Move sp out of the way,
  23.                 ! so that traps still work.
  24.                 ! Includes some extra words
  25.                 ! so we can be sloppy below.
  26. loop:
  27.     std    %g0,[%o3]    ! *(long long *)p = 0
  28.     cmp    %o3,%o1
  29.     bgu    loop        ! if (p > limit) goto loop
  30.       add    %o3,-8,%o3    ! p -= 8 (delay slot)
  31.     retl
  32.       mov    %o2,%sp        ! Restore sp., delay slot
  33.     
  34.         
  35.         
  36.         
  37.         
  38.