[BACK]Return to sparc_mach_dep.s CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gc

Annotation of OpenXM_contrib/gc/sparc_mach_dep.s, Revision 1.1.1.1

1.1       maekawa     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:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>