164 void FrameMap::initialize() {
165 assert(!_init_done, "once");
166
167 int i=0;
168 map_register(i, r0); r0_opr = LIR_OprFact::single_cpu(i); i++;
169 map_register(i, r1); r1_opr = LIR_OprFact::single_cpu(i); i++;
170 map_register(i, r2); r2_opr = LIR_OprFact::single_cpu(i); i++;
171 map_register(i, r3); r3_opr = LIR_OprFact::single_cpu(i); i++;
172 map_register(i, r4); r4_opr = LIR_OprFact::single_cpu(i); i++;
173 map_register(i, r5); r5_opr = LIR_OprFact::single_cpu(i); i++;
174 map_register(i, r6); r6_opr = LIR_OprFact::single_cpu(i); i++;
175 map_register(i, r7); r7_opr = LIR_OprFact::single_cpu(i); i++;
176 map_register(i, r10); r10_opr = LIR_OprFact::single_cpu(i); i++;
177 map_register(i, r11); r11_opr = LIR_OprFact::single_cpu(i); i++;
178 map_register(i, r12); r12_opr = LIR_OprFact::single_cpu(i); i++;
179 map_register(i, r13); r13_opr = LIR_OprFact::single_cpu(i); i++;
180 map_register(i, r14); r14_opr = LIR_OprFact::single_cpu(i); i++;
181 map_register(i, r15); r15_opr = LIR_OprFact::single_cpu(i); i++;
182 map_register(i, r16); r16_opr = LIR_OprFact::single_cpu(i); i++;
183 map_register(i, r17); r17_opr = LIR_OprFact::single_cpu(i); i++;
184 map_register(i, r18); r18_opr = LIR_OprFact::single_cpu(i); i++;
185 map_register(i, r19); r19_opr = LIR_OprFact::single_cpu(i); i++;
186 map_register(i, r20); r20_opr = LIR_OprFact::single_cpu(i); i++;
187 map_register(i, r21); r21_opr = LIR_OprFact::single_cpu(i); i++;
188 map_register(i, r22); r22_opr = LIR_OprFact::single_cpu(i); i++;
189 map_register(i, r23); r23_opr = LIR_OprFact::single_cpu(i); i++;
190 map_register(i, r24); r24_opr = LIR_OprFact::single_cpu(i); i++;
191 map_register(i, r25); r25_opr = LIR_OprFact::single_cpu(i); i++;
192 map_register(i, r26); r26_opr = LIR_OprFact::single_cpu(i); i++;
193
194 map_register(i, r27); r27_opr = LIR_OprFact::single_cpu(i); i++; // rheapbase
195 map_register(i, r28); r28_opr = LIR_OprFact::single_cpu(i); i++; // rthread
196 map_register(i, r29); r29_opr = LIR_OprFact::single_cpu(i); i++; // rfp
197 map_register(i, r30); r30_opr = LIR_OprFact::single_cpu(i); i++; // lr
198 map_register(i, r31_sp); sp_opr = LIR_OprFact::single_cpu(i); i++; // sp
199 map_register(i, r8); r8_opr = LIR_OprFact::single_cpu(i); i++; // rscratch1
200 map_register(i, r9); r9_opr = LIR_OprFact::single_cpu(i); i++; // rscratch2
201
202 rscratch1_opr = r8_opr;
203 rscratch2_opr = r9_opr;
204 rscratch1_long_opr = LIR_OprFact::double_cpu(r8_opr->cpu_regnr(), r8_opr->cpu_regnr());
205 rscratch2_long_opr = LIR_OprFact::double_cpu(r9_opr->cpu_regnr(), r9_opr->cpu_regnr());
206
207 long0_opr = LIR_OprFact::double_cpu(0, 0);
208 long1_opr = LIR_OprFact::double_cpu(1, 1);
209
210 fpu0_float_opr = LIR_OprFact::single_fpu(0);
211 fpu0_double_opr = LIR_OprFact::double_fpu(0);
212
213 _caller_save_cpu_regs[0] = r0_opr;
214 _caller_save_cpu_regs[1] = r1_opr;
215 _caller_save_cpu_regs[2] = r2_opr;
216 _caller_save_cpu_regs[3] = r3_opr;
217 _caller_save_cpu_regs[4] = r4_opr;
218 _caller_save_cpu_regs[5] = r5_opr;
219 _caller_save_cpu_regs[6] = r6_opr;
220 _caller_save_cpu_regs[7] = r7_opr;
221 // rscratch1, rscratch 2 not included
222 _caller_save_cpu_regs[8] = r10_opr;
223 _caller_save_cpu_regs[9] = r11_opr;
224 _caller_save_cpu_regs[10] = r12_opr;
225 _caller_save_cpu_regs[11] = r13_opr;
226 _caller_save_cpu_regs[12] = r14_opr;
227 _caller_save_cpu_regs[13] = r15_opr;
228 _caller_save_cpu_regs[14] = r16_opr;
229 _caller_save_cpu_regs[15] = r17_opr;
230 _caller_save_cpu_regs[16] = r18_opr;
231
232 for (int i = 0; i < 8; i++) {
233 _caller_save_fpu_regs[i] = LIR_OprFact::single_fpu(i);
234 }
235
236 _init_done = true;
237
238 r0_oop_opr = as_oop_opr(r0);
239 r1_oop_opr = as_oop_opr(r1);
240 r2_oop_opr = as_oop_opr(r2);
241 r3_oop_opr = as_oop_opr(r3);
242 r4_oop_opr = as_oop_opr(r4);
243 r5_oop_opr = as_oop_opr(r5);
244 r6_oop_opr = as_oop_opr(r6);
245 r7_oop_opr = as_oop_opr(r7);
246 r8_oop_opr = as_oop_opr(r8);
247 r9_oop_opr = as_oop_opr(r9);
248 r10_oop_opr = as_oop_opr(r10);
249 r11_oop_opr = as_oop_opr(r11);
250 r12_oop_opr = as_oop_opr(r12);
251 r13_oop_opr = as_oop_opr(r13);
252 r14_oop_opr = as_oop_opr(r14);
253 r15_oop_opr = as_oop_opr(r15);
254 r16_oop_opr = as_oop_opr(r16);
255 r17_oop_opr = as_oop_opr(r17);
256 r18_oop_opr = as_oop_opr(r18);
257 r19_oop_opr = as_oop_opr(r19);
258 r20_oop_opr = as_oop_opr(r20);
259 r21_oop_opr = as_oop_opr(r21);
260 r22_oop_opr = as_oop_opr(r22);
261 r23_oop_opr = as_oop_opr(r23);
262 r24_oop_opr = as_oop_opr(r24);
263 r25_oop_opr = as_oop_opr(r25);
264 r26_oop_opr = as_oop_opr(r26);
265 r27_oop_opr = as_oop_opr(r27);
266 r28_oop_opr = as_oop_opr(r28);
267 r29_oop_opr = as_oop_opr(r29);
268 r30_oop_opr = as_oop_opr(r30);
269
270 r0_metadata_opr = as_metadata_opr(r0);
271 r1_metadata_opr = as_metadata_opr(r1);
272 r2_metadata_opr = as_metadata_opr(r2);
273 r3_metadata_opr = as_metadata_opr(r3);
274 r4_metadata_opr = as_metadata_opr(r4);
275 r5_metadata_opr = as_metadata_opr(r5);
276
|
164 void FrameMap::initialize() {
165 assert(!_init_done, "once");
166
167 int i=0;
168 map_register(i, r0); r0_opr = LIR_OprFact::single_cpu(i); i++;
169 map_register(i, r1); r1_opr = LIR_OprFact::single_cpu(i); i++;
170 map_register(i, r2); r2_opr = LIR_OprFact::single_cpu(i); i++;
171 map_register(i, r3); r3_opr = LIR_OprFact::single_cpu(i); i++;
172 map_register(i, r4); r4_opr = LIR_OprFact::single_cpu(i); i++;
173 map_register(i, r5); r5_opr = LIR_OprFact::single_cpu(i); i++;
174 map_register(i, r6); r6_opr = LIR_OprFact::single_cpu(i); i++;
175 map_register(i, r7); r7_opr = LIR_OprFact::single_cpu(i); i++;
176 map_register(i, r10); r10_opr = LIR_OprFact::single_cpu(i); i++;
177 map_register(i, r11); r11_opr = LIR_OprFact::single_cpu(i); i++;
178 map_register(i, r12); r12_opr = LIR_OprFact::single_cpu(i); i++;
179 map_register(i, r13); r13_opr = LIR_OprFact::single_cpu(i); i++;
180 map_register(i, r14); r14_opr = LIR_OprFact::single_cpu(i); i++;
181 map_register(i, r15); r15_opr = LIR_OprFact::single_cpu(i); i++;
182 map_register(i, r16); r16_opr = LIR_OprFact::single_cpu(i); i++;
183 map_register(i, r17); r17_opr = LIR_OprFact::single_cpu(i); i++;
184 #ifndef _WIN64
185 // See comment in register_aarch64.hpp
186 map_register(i, r18_tls); r18_opr = LIR_OprFact::single_cpu(i); i++;
187 #endif
188 map_register(i, r19); r19_opr = LIR_OprFact::single_cpu(i); i++;
189 map_register(i, r20); r20_opr = LIR_OprFact::single_cpu(i); i++;
190 map_register(i, r21); r21_opr = LIR_OprFact::single_cpu(i); i++;
191 map_register(i, r22); r22_opr = LIR_OprFact::single_cpu(i); i++;
192 map_register(i, r23); r23_opr = LIR_OprFact::single_cpu(i); i++;
193 map_register(i, r24); r24_opr = LIR_OprFact::single_cpu(i); i++;
194 map_register(i, r25); r25_opr = LIR_OprFact::single_cpu(i); i++;
195 map_register(i, r26); r26_opr = LIR_OprFact::single_cpu(i); i++;
196
197 map_register(i, r27); r27_opr = LIR_OprFact::single_cpu(i); i++; // rheapbase
198 map_register(i, r28); r28_opr = LIR_OprFact::single_cpu(i); i++; // rthread
199 map_register(i, r29); r29_opr = LIR_OprFact::single_cpu(i); i++; // rfp
200 map_register(i, r30); r30_opr = LIR_OprFact::single_cpu(i); i++; // lr
201 map_register(i, r31_sp); sp_opr = LIR_OprFact::single_cpu(i); i++; // sp
202 map_register(i, r8); r8_opr = LIR_OprFact::single_cpu(i); i++; // rscratch1
203 map_register(i, r9); r9_opr = LIR_OprFact::single_cpu(i); i++; // rscratch2
204
205 #ifdef _WIN64
206 // See comment in register_aarch64.hpp
207 map_register(i, r18_tls); r18_opr = LIR_OprFact::single_cpu(i); i++; // TLS for Win
208 #endif
209
210 rscratch1_opr = r8_opr;
211 rscratch2_opr = r9_opr;
212 rscratch1_long_opr = LIR_OprFact::double_cpu(r8_opr->cpu_regnr(), r8_opr->cpu_regnr());
213 rscratch2_long_opr = LIR_OprFact::double_cpu(r9_opr->cpu_regnr(), r9_opr->cpu_regnr());
214
215 long0_opr = LIR_OprFact::double_cpu(0, 0);
216 long1_opr = LIR_OprFact::double_cpu(1, 1);
217
218 fpu0_float_opr = LIR_OprFact::single_fpu(0);
219 fpu0_double_opr = LIR_OprFact::double_fpu(0);
220
221 _caller_save_cpu_regs[0] = r0_opr;
222 _caller_save_cpu_regs[1] = r1_opr;
223 _caller_save_cpu_regs[2] = r2_opr;
224 _caller_save_cpu_regs[3] = r3_opr;
225 _caller_save_cpu_regs[4] = r4_opr;
226 _caller_save_cpu_regs[5] = r5_opr;
227 _caller_save_cpu_regs[6] = r6_opr;
228 _caller_save_cpu_regs[7] = r7_opr;
229 // rscratch1, rscratch 2 not included
230 _caller_save_cpu_regs[8] = r10_opr;
231 _caller_save_cpu_regs[9] = r11_opr;
232 _caller_save_cpu_regs[10] = r12_opr;
233 _caller_save_cpu_regs[11] = r13_opr;
234 _caller_save_cpu_regs[12] = r14_opr;
235 _caller_save_cpu_regs[13] = r15_opr;
236 _caller_save_cpu_regs[14] = r16_opr;
237 _caller_save_cpu_regs[15] = r17_opr;
238 #ifndef _WIN64
239 // See comment in register_aarch64.hpp
240 _caller_save_cpu_regs[16] = r18_opr;
241 #endif
242
243 for (int i = 0; i < 8; i++) {
244 _caller_save_fpu_regs[i] = LIR_OprFact::single_fpu(i);
245 }
246
247 _init_done = true;
248
249 r0_oop_opr = as_oop_opr(r0);
250 r1_oop_opr = as_oop_opr(r1);
251 r2_oop_opr = as_oop_opr(r2);
252 r3_oop_opr = as_oop_opr(r3);
253 r4_oop_opr = as_oop_opr(r4);
254 r5_oop_opr = as_oop_opr(r5);
255 r6_oop_opr = as_oop_opr(r6);
256 r7_oop_opr = as_oop_opr(r7);
257 r8_oop_opr = as_oop_opr(r8);
258 r9_oop_opr = as_oop_opr(r9);
259 r10_oop_opr = as_oop_opr(r10);
260 r11_oop_opr = as_oop_opr(r11);
261 r12_oop_opr = as_oop_opr(r12);
262 r13_oop_opr = as_oop_opr(r13);
263 r14_oop_opr = as_oop_opr(r14);
264 r15_oop_opr = as_oop_opr(r15);
265 r16_oop_opr = as_oop_opr(r16);
266 r17_oop_opr = as_oop_opr(r17);
267 r18_oop_opr = as_oop_opr(r18_tls);
268 r19_oop_opr = as_oop_opr(r19);
269 r20_oop_opr = as_oop_opr(r20);
270 r21_oop_opr = as_oop_opr(r21);
271 r22_oop_opr = as_oop_opr(r22);
272 r23_oop_opr = as_oop_opr(r23);
273 r24_oop_opr = as_oop_opr(r24);
274 r25_oop_opr = as_oop_opr(r25);
275 r26_oop_opr = as_oop_opr(r26);
276 r27_oop_opr = as_oop_opr(r27);
277 r28_oop_opr = as_oop_opr(r28);
278 r29_oop_opr = as_oop_opr(r29);
279 r30_oop_opr = as_oop_opr(r30);
280
281 r0_metadata_opr = as_metadata_opr(r0);
282 r1_metadata_opr = as_metadata_opr(r1);
283 r2_metadata_opr = as_metadata_opr(r2);
284 r3_metadata_opr = as_metadata_opr(r3);
285 r4_metadata_opr = as_metadata_opr(r4);
286 r5_metadata_opr = as_metadata_opr(r5);
287
|