< prev index next >

src/hotspot/cpu/ppc/ppc.ad

Print this page

 2362 const uint Matcher::vector_ideal_reg(int size) {
 2363   if (SuperwordUseVSX) {
 2364     assert(MaxVectorSize == 16 && size == 16, "");
 2365     return Op_VecX;
 2366   } else {
 2367     assert(MaxVectorSize == 8 && size == 8, "");
 2368     return Op_RegL;
 2369   }
 2370 }
 2371 
 2372 // Limits on vector size (number of elements) loaded into vector.
 2373 const int Matcher::max_vector_size(const BasicType bt) {
 2374   assert(is_java_primitive(bt), "only primitive type vectors");
 2375   return vector_width_in_bytes(bt)/type2aelembytes(bt);
 2376 }
 2377 
 2378 const int Matcher::min_vector_size(const BasicType bt) {
 2379   return max_vector_size(bt); // Same as max.
 2380 }
 2381 








 2382 // PPC implementation uses VSX load/store instructions (if
 2383 // SuperwordUseVSX) which support 4 byte but not arbitrary alignment
 2384 const bool Matcher::misaligned_vectors_ok() {
 2385   return false;
 2386 }
 2387 
 2388 // PPC AES support not yet implemented
 2389 const bool Matcher::pass_original_key_for_aes() {
 2390   return false;
 2391 }
 2392 
 2393 // RETURNS: whether this branch offset is short enough that a short
 2394 // branch can be used.
 2395 //
 2396 // If the platform does not provide any short branch variants, then
 2397 // this method should return `false' for offset 0.
 2398 //
 2399 // `Compile::Fill_buffer' will decide on basis of this information
 2400 // whether to do the pass `Compile::Shorten_branches' at all.
 2401 //

 2362 const uint Matcher::vector_ideal_reg(int size) {
 2363   if (SuperwordUseVSX) {
 2364     assert(MaxVectorSize == 16 && size == 16, "");
 2365     return Op_VecX;
 2366   } else {
 2367     assert(MaxVectorSize == 8 && size == 8, "");
 2368     return Op_RegL;
 2369   }
 2370 }
 2371 
 2372 // Limits on vector size (number of elements) loaded into vector.
 2373 const int Matcher::max_vector_size(const BasicType bt) {
 2374   assert(is_java_primitive(bt), "only primitive type vectors");
 2375   return vector_width_in_bytes(bt)/type2aelembytes(bt);
 2376 }
 2377 
 2378 const int Matcher::min_vector_size(const BasicType bt) {
 2379   return max_vector_size(bt); // Same as max.
 2380 }
 2381 
 2382 const bool Matcher::supports_scalable_vector() {
 2383   return false;
 2384 }
 2385 
 2386 const int Matcher::scalable_vector_reg_size(const BasicType bt) {
 2387   return -1;
 2388 }
 2389 
 2390 // PPC implementation uses VSX load/store instructions (if
 2391 // SuperwordUseVSX) which support 4 byte but not arbitrary alignment
 2392 const bool Matcher::misaligned_vectors_ok() {
 2393   return false;
 2394 }
 2395 
 2396 // PPC AES support not yet implemented
 2397 const bool Matcher::pass_original_key_for_aes() {
 2398   return false;
 2399 }
 2400 
 2401 // RETURNS: whether this branch offset is short enough that a short
 2402 // branch can be used.
 2403 //
 2404 // If the platform does not provide any short branch variants, then
 2405 // this method should return `false' for offset 0.
 2406 //
 2407 // `Compile::Fill_buffer' will decide on basis of this information
 2408 // whether to do the pass `Compile::Shorten_branches' at all.
 2409 //
< prev index next >