]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
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 | |
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 |