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
4.
4 ! Assumes this is called before the stack contents are
8 .globl _GC_save_regs_in_stack
10 _GC_save_regs_in_stack
:
12 ta
0x3 ! ST_FLUSH_WINDOWS
17 .globl _GC_clear_stack_inner
18 _GC_clear_stack_inner
:
20 add %sp
,-8,%o3
! p
= sp-
8
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.
27 std %g0
,[%o3
] ! *(long long
*)p
= 0
29 bgu loop
! if
(p
> limit
) goto loop
30 add %o3
,-8,%o3
! p
-= 8 (delay slot
)
32 mov
%o2
,%sp
! Restore sp.
, delay slot