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 //
|