1
by Ryan Murray
Import upstream version 6.0+6.1alpha4 |
1 |
.set r0,0 |
2 |
.set r1,1 |
|
3 |
.set r2,2 |
|
4 |
.set r3,3 |
|
5 |
.set r4,4 |
|
6 |
.set r5,5 |
|
7 |
.set r6,6 |
|
8 |
.set r7,7 |
|
9 |
.set r8,8 |
|
10 |
.set r9,9 |
|
11 |
.set r10,10 |
|
12 |
.set r11,11 |
|
13 |
.set r12,12 |
|
14 |
.set r13,13 |
|
15 |
.set r14,14 |
|
16 |
.set r15,15 |
|
17 |
.set r16,16 |
|
18 |
.set r17,17 |
|
19 |
.set r18,18 |
|
20 |
.set r19,19 |
|
21 |
.set r20,20 |
|
22 |
.set r21,21 |
|
23 |
.set r22,22 |
|
24 |
.set r23,23 |
|
25 |
.set r24,24 |
|
26 |
.set r25,25 |
|
27 |
.set r26,26 |
|
28 |
.set r27,27 |
|
29 |
.set r28,28 |
|
30 |
.set r29,29 |
|
31 |
.set r30,30 |
|
32 |
.set r31,31 |
|
33 |
||
34 |
.extern .GC_push_one |
|
35 |
# Mark from machine registers that are saved by C compiler
|
|
36 |
.globl .GC_push_regs |
|
37 |
.csect .text[PR] |
|
38 |
.align 2 |
|
39 |
.globl GC_push_regs |
|
40 |
.globl .GC_push_regs |
|
41 |
.csect GC_push_regs[DS] |
|
42 |
GC_push_regs:
|
|
43 |
.long .GC_push_regs, TOC[tc0], 0 |
|
44 |
.csect .text[PR] |
|
45 |
.GC_push_regs:
|
|
46 |
stu r1,-64(r1) # reserve stack frame |
|
47 |
mflr r0 # save link register |
|
48 |
st r0,0x48(r1) |
|
49 |
oril r3,r2,0x0 # mark from r2 |
|
50 |
bl .GC_push_one |
|
51 |
cror 15,15,15 |
|
52 |
oril r3,r13,0x0 # mark from r13-r31 |
|
53 |
bl .GC_push_one |
|
54 |
cror 15,15,15 |
|
55 |
oril r3,r14,0x0 |
|
56 |
bl .GC_push_one |
|
57 |
cror 15,15,15 |
|
58 |
oril r3,r15,0x0 |
|
59 |
bl .GC_push_one |
|
60 |
cror 15,15,15 |
|
61 |
oril r3,r16,0x0 |
|
62 |
bl .GC_push_one |
|
63 |
cror 15,15,15 |
|
64 |
oril r3,r17,0x0 |
|
65 |
bl .GC_push_one |
|
66 |
cror 15,15,15 |
|
67 |
oril r3,r18,0x0 |
|
68 |
bl .GC_push_one |
|
69 |
cror 15,15,15 |
|
70 |
oril r3,r19,0x0 |
|
71 |
bl .GC_push_one |
|
72 |
cror 15,15,15 |
|
73 |
oril r3,r20,0x0 |
|
74 |
bl .GC_push_one |
|
75 |
cror 15,15,15 |
|
76 |
oril r3,r21,0x0 |
|
77 |
bl .GC_push_one |
|
78 |
cror 15,15,15 |
|
79 |
oril r3,r22,0x0 |
|
80 |
bl .GC_push_one |
|
81 |
cror 15,15,15 |
|
82 |
oril r3,r23,0x0 |
|
83 |
bl .GC_push_one |
|
84 |
cror 15,15,15 |
|
85 |
oril r3,r24,0x0 |
|
86 |
bl .GC_push_one |
|
87 |
cror 15,15,15 |
|
88 |
oril r3,r25,0x0 |
|
89 |
bl .GC_push_one |
|
90 |
cror 15,15,15 |
|
91 |
oril r3,r26,0x0 |
|
92 |
bl .GC_push_one |
|
93 |
cror 15,15,15 |
|
94 |
oril r3,r27,0x0 |
|
95 |
bl .GC_push_one |
|
96 |
cror 15,15,15 |
|
97 |
oril r3,r28,0x0 |
|
98 |
bl .GC_push_one |
|
99 |
cror 15,15,15 |
|
100 |
oril r3,r29,0x0 |
|
101 |
bl .GC_push_one |
|
102 |
cror 15,15,15 |
|
103 |
oril r3,r30,0x0 |
|
104 |
bl .GC_push_one |
|
105 |
cror 15,15,15 |
|
106 |
oril r3,r31,0x0 |
|
107 |
bl .GC_push_one |
|
108 |
cror 15,15,15 |
|
109 |
l r0,0x48(r1) |
|
110 |
mtlr r0 |
|
111 |
ai r1,r1,64 |
|
112 |
br
|
|
113 |
.long 0 |
|
114 |
.byte 0,0,0,0,0,0,0,0 |