< prev index next >

src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp

Print this page




1329         __ shll(dest_reg, 16);
1330         __ sarl(dest_reg, 16);
1331       }
1332       break;
1333     }
1334 
1335     default:
1336       ShouldNotReachHere();
1337   }
1338 
1339   if (patch != NULL) {
1340     patching_epilog(patch, patch_code, addr->base()->as_register(), info);
1341   }
1342 
1343   if (type == T_ARRAY || type == T_OBJECT) {
1344 #ifdef _LP64
1345     if (UseCompressedOops && !wide) {
1346       __ decode_heap_oop(dest->as_register());
1347     }
1348 #endif
1349     __ verify_oop(dest->as_register());






1350   } else if (type == T_ADDRESS && addr->disp() == oopDesc::klass_offset_in_bytes()) {
1351 #ifdef _LP64
1352     if (UseCompressedClassPointers) {
1353       __ decode_klass_not_null(dest->as_register());
1354     }
1355 #endif
1356   }
1357 }
1358 
1359 
1360 NEEDS_CLEANUP; // This could be static?
1361 Address::ScaleFactor LIR_Assembler::array_element_size(BasicType type) const {
1362   int elem_size = type2aelembytes(type);
1363   switch (elem_size) {
1364     case 1: return Address::times_1;
1365     case 2: return Address::times_2;
1366     case 4: return Address::times_4;
1367     case 8: return Address::times_8;
1368   }
1369   ShouldNotReachHere();




1329         __ shll(dest_reg, 16);
1330         __ sarl(dest_reg, 16);
1331       }
1332       break;
1333     }
1334 
1335     default:
1336       ShouldNotReachHere();
1337   }
1338 
1339   if (patch != NULL) {
1340     patching_epilog(patch, patch_code, addr->base()->as_register(), info);
1341   }
1342 
1343   if (type == T_ARRAY || type == T_OBJECT) {
1344 #ifdef _LP64
1345     if (UseCompressedOops && !wide) {
1346       __ decode_heap_oop(dest->as_register());
1347     }
1348 #endif
1349 #if INCLUDE_ZGC
1350     // Load barrier not yet applied, so a verification here would fail
1351     if (!UseZGC)
1352 #endif
1353     {
1354       __ verify_oop(dest->as_register());
1355     }
1356   } else if (type == T_ADDRESS && addr->disp() == oopDesc::klass_offset_in_bytes()) {
1357 #ifdef _LP64
1358     if (UseCompressedClassPointers) {
1359       __ decode_klass_not_null(dest->as_register());
1360     }
1361 #endif
1362   }
1363 }
1364 
1365 
1366 NEEDS_CLEANUP; // This could be static?
1367 Address::ScaleFactor LIR_Assembler::array_element_size(BasicType type) const {
1368   int elem_size = type2aelembytes(type);
1369   switch (elem_size) {
1370     case 1: return Address::times_1;
1371     case 2: return Address::times_2;
1372     case 4: return Address::times_4;
1373     case 8: return Address::times_8;
1374   }
1375   ShouldNotReachHere();


< prev index next >