@@ -41,6 +41,8 @@ TEXT _main(SB),NOSPLIT,$-8
41
41
MOVD R12, CTR
42
42
BR (CTR)
43
43
44
+ // Paramater save space required to cross-call into _cgo_sys_thread_create
45
+ #define PARAM_SPACE 16
44
46
45
47
TEXT _rt0_ppc64_aix_lib(SB),NOSPLIT,$-8
46
48
// Start with standard C stack frame layout and linkage.
@@ -49,45 +51,45 @@ TEXT _rt0_ppc64_aix_lib(SB),NOSPLIT,$-8
49
51
MOVW CR, R0 // Save CR in caller's frame
50
52
MOVD R0, 8 (R1)
51
53
52
- MOVDU R1, -344 (R1) // Allocate frame.
54
+ MOVDU R1, -344 -PARAM_SPACE (R1) // Allocate frame.
53
55
54
56
// Preserve callee-save registers.
55
- MOVD R14, 48 (R1)
56
- MOVD R15, 56 (R1)
57
- MOVD R16, 64 (R1)
58
- MOVD R17, 72 (R1)
59
- MOVD R18, 80 (R1)
60
- MOVD R19, 88 (R1)
61
- MOVD R20, 96 (R1)
62
- MOVD R21,104 (R1)
63
- MOVD R22, 112 (R1)
64
- MOVD R23, 120 (R1)
65
- MOVD R24, 128 (R1)
66
- MOVD R25, 136 (R1)
67
- MOVD R26, 144 (R1)
68
- MOVD R27, 152 (R1)
69
- MOVD R28, 160 (R1)
70
- MOVD R29, 168 (R1)
71
- MOVD g, 176 (R1) // R30
72
- MOVD R31, 184 (R1)
73
- FMOVD F14, 192 (R1)
74
- FMOVD F15, 200 (R1)
75
- FMOVD F16, 208 (R1)
76
- FMOVD F17, 216 (R1)
77
- FMOVD F18, 224 (R1)
78
- FMOVD F19, 232 (R1)
79
- FMOVD F20, 240 (R1)
80
- FMOVD F21, 248 (R1)
81
- FMOVD F22, 256 (R1)
82
- FMOVD F23, 264 (R1)
83
- FMOVD F24, 272 (R1)
84
- FMOVD F25, 280 (R1)
85
- FMOVD F26, 288 (R1)
86
- FMOVD F27, 296 (R1)
87
- FMOVD F28, 304 (R1)
88
- FMOVD F29, 312 (R1)
89
- FMOVD F30, 320 (R1)
90
- FMOVD F31, 328 (R1)
57
+ MOVD R14, 48 +PARAM_SPACE (R1)
58
+ MOVD R15, 56 +PARAM_SPACE (R1)
59
+ MOVD R16, 64 +PARAM_SPACE (R1)
60
+ MOVD R17, 72 +PARAM_SPACE (R1)
61
+ MOVD R18, 80 +PARAM_SPACE (R1)
62
+ MOVD R19, 88 +PARAM_SPACE (R1)
63
+ MOVD R20, 96 +PARAM_SPACE (R1)
64
+ MOVD R21,104 +PARAM_SPACE (R1)
65
+ MOVD R22, 112 +PARAM_SPACE (R1)
66
+ MOVD R23, 120 +PARAM_SPACE (R1)
67
+ MOVD R24, 128 +PARAM_SPACE (R1)
68
+ MOVD R25, 136 +PARAM_SPACE (R1)
69
+ MOVD R26, 144 +PARAM_SPACE (R1)
70
+ MOVD R27, 152 +PARAM_SPACE (R1)
71
+ MOVD R28, 160 +PARAM_SPACE (R1)
72
+ MOVD R29, 168 +PARAM_SPACE (R1)
73
+ MOVD g, 176 +PARAM_SPACE (R1) // R30
74
+ MOVD R31, 184 +PARAM_SPACE (R1)
75
+ FMOVD F14, 192 +PARAM_SPACE (R1)
76
+ FMOVD F15, 200 +PARAM_SPACE (R1)
77
+ FMOVD F16, 208 +PARAM_SPACE (R1)
78
+ FMOVD F17, 216 +PARAM_SPACE (R1)
79
+ FMOVD F18, 224 +PARAM_SPACE (R1)
80
+ FMOVD F19, 232 +PARAM_SPACE (R1)
81
+ FMOVD F20, 240 +PARAM_SPACE (R1)
82
+ FMOVD F21, 248 +PARAM_SPACE (R1)
83
+ FMOVD F22, 256 +PARAM_SPACE (R1)
84
+ FMOVD F23, 264 +PARAM_SPACE (R1)
85
+ FMOVD F24, 272 +PARAM_SPACE (R1)
86
+ FMOVD F25, 280 +PARAM_SPACE (R1)
87
+ FMOVD F26, 288 +PARAM_SPACE (R1)
88
+ FMOVD F27, 296 +PARAM_SPACE (R1)
89
+ FMOVD F28, 304 +PARAM_SPACE (R1)
90
+ FMOVD F29, 312 +PARAM_SPACE (R1)
91
+ FMOVD F30, 320 +PARAM_SPACE (R1)
92
+ FMOVD F31, 328 +PARAM_SPACE (R1)
91
93
92
94
// Synchronous initialization.
93
95
MOVD $runtime·reginit(SB), R12
@@ -130,44 +132,44 @@ nocgo:
130
132
131
133
done:
132
134
// Restore saved registers.
133
- MOVD 48 (R1), R14
134
- MOVD 56 (R1), R15
135
- MOVD 64 (R1), R16
136
- MOVD 72 (R1), R17
137
- MOVD 80 (R1), R18
138
- MOVD 88 (R1), R19
139
- MOVD 96 (R1), R20
140
- MOVD 104 (R1), R21
141
- MOVD 112 (R1), R22
142
- MOVD 120 (R1), R23
143
- MOVD 128 (R1), R24
144
- MOVD 136 (R1), R25
145
- MOVD 144 (R1), R26
146
- MOVD 152 (R1), R27
147
- MOVD 160 (R1), R28
148
- MOVD 168 (R1), R29
149
- MOVD 176 (R1), g // R30
150
- MOVD 184 (R1), R31
151
- FMOVD 196 (R1), F14
152
- FMOVD 200 (R1), F15
153
- FMOVD 208 (R1), F16
154
- FMOVD 216 (R1), F17
155
- FMOVD 224 (R1), F18
156
- FMOVD 232 (R1), F19
157
- FMOVD 240 (R1), F20
158
- FMOVD 248 (R1), F21
159
- FMOVD 256 (R1), F22
160
- FMOVD 264 (R1), F23
161
- FMOVD 272 (R1), F24
162
- FMOVD 280 (R1), F25
163
- FMOVD 288 (R1), F26
164
- FMOVD 296 (R1), F27
165
- FMOVD 304 (R1), F28
166
- FMOVD 312 (R1), F29
167
- FMOVD 320 (R1), F30
168
- FMOVD 328 (R1), F31
169
-
170
- ADD $344 , R1
135
+ MOVD 48 +PARAM_SPACE (R1), R14
136
+ MOVD 56 +PARAM_SPACE (R1), R15
137
+ MOVD 64 +PARAM_SPACE (R1), R16
138
+ MOVD 72 +PARAM_SPACE (R1), R17
139
+ MOVD 80 +PARAM_SPACE (R1), R18
140
+ MOVD 88 +PARAM_SPACE (R1), R19
141
+ MOVD 96 +PARAM_SPACE (R1), R20
142
+ MOVD 104 +PARAM_SPACE (R1), R21
143
+ MOVD 112 +PARAM_SPACE (R1), R22
144
+ MOVD 120 +PARAM_SPACE (R1), R23
145
+ MOVD 128 +PARAM_SPACE (R1), R24
146
+ MOVD 136 +PARAM_SPACE (R1), R25
147
+ MOVD 144 +PARAM_SPACE (R1), R26
148
+ MOVD 152 +PARAM_SPACE (R1), R27
149
+ MOVD 160 +PARAM_SPACE (R1), R28
150
+ MOVD 168 +PARAM_SPACE (R1), R29
151
+ MOVD 176 +PARAM_SPACE (R1), g // R30
152
+ MOVD 184 +PARAM_SPACE (R1), R31
153
+ FMOVD 196 +PARAM_SPACE (R1), F14
154
+ FMOVD 200 +PARAM_SPACE (R1), F15
155
+ FMOVD 208 +PARAM_SPACE (R1), F16
156
+ FMOVD 216 +PARAM_SPACE (R1), F17
157
+ FMOVD 224 +PARAM_SPACE (R1), F18
158
+ FMOVD 232 +PARAM_SPACE (R1), F19
159
+ FMOVD 240 +PARAM_SPACE (R1), F20
160
+ FMOVD 248 +PARAM_SPACE (R1), F21
161
+ FMOVD 256 +PARAM_SPACE (R1), F22
162
+ FMOVD 264 +PARAM_SPACE (R1), F23
163
+ FMOVD 272 +PARAM_SPACE (R1), F24
164
+ FMOVD 280 +PARAM_SPACE (R1), F25
165
+ FMOVD 288 +PARAM_SPACE (R1), F26
166
+ FMOVD 296 +PARAM_SPACE (R1), F27
167
+ FMOVD 304 +PARAM_SPACE (R1), F28
168
+ FMOVD 312 +PARAM_SPACE (R1), F29
169
+ FMOVD 320 +PARAM_SPACE (R1), F30
170
+ FMOVD 328 +PARAM_SPACE (R1), F31
171
+
172
+ ADD $344 +PARAM_SPACE , R1
171
173
172
174
MOVD 8 (R1), R0
173
175
MOVFL R0, $0xff
0 commit comments