< prev index next >

src/hotspot/cpu/aarch64/c1_FrameMap_aarch64.cpp

Print this page
rev 60623 : 8248500: AArch64: Remove the r18 dependency on Windows AArch64
Reviewed-by:
Contributed-by: mbeckwit, luhenry, burban


 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 


< prev index next >