Annotation of OpenXM_contrib2/asir2000/gc5.3/sparc_mach_dep.s, Revision 1.1.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>