Annotation of OpenXM_contrib2/asir2000/gc5.3/sparc_mach_dep.s, Revision 1.1
1.1 ! noro 1: ! SPARCompiler 3.0 and later apparently no longer 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>