< prev index next >

src/hotspot/cpu/s390/s390.ad

Print this page
rev 60615 : 8231441: Initial SVE backend support
Reviewed-by: adinn, pli
Contributed-by: joshua.zhu@arm.com, yang.zhang@arm.com, ningsheng.jian@arm.com


1593   assert(MaxVectorSize == 8, "");
1594   return 8;
1595 }
1596 
1597 // Vector ideal reg.
1598 const uint Matcher::vector_ideal_reg(int size) {
1599   assert(MaxVectorSize == 8 && size == 8, "");
1600   return Op_RegL;
1601 }
1602 
1603 // Limits on vector size (number of elements) loaded into vector.
1604 const int Matcher::max_vector_size(const BasicType bt) {
1605   assert(is_java_primitive(bt), "only primitive type vectors");
1606   return vector_width_in_bytes(bt)/type2aelembytes(bt);
1607 }
1608 
1609 const int Matcher::min_vector_size(const BasicType bt) {
1610   return max_vector_size(bt); // Same as max.
1611 }
1612 








1613 // z/Architecture does support misaligned store/load at minimal extra cost.
1614 const bool Matcher::misaligned_vectors_ok() {
1615   return true;
1616 }
1617 
1618 // Not yet ported to z/Architecture.
1619 const bool Matcher::pass_original_key_for_aes() {
1620   return false;
1621 }
1622 
1623 // RETURNS: whether this branch offset is short enough that a short
1624 // branch can be used.
1625 //
1626 // If the platform does not provide any short branch variants, then
1627 // this method should return `false' for offset 0.
1628 //
1629 // `Compile::Fill_buffer' will decide on basis of this information
1630 // whether to do the pass `Compile::Shorten_branches' at all.
1631 //
1632 // And `Compile::Shorten_branches' will decide on basis of this




1593   assert(MaxVectorSize == 8, "");
1594   return 8;
1595 }
1596 
1597 // Vector ideal reg.
1598 const uint Matcher::vector_ideal_reg(int size) {
1599   assert(MaxVectorSize == 8 && size == 8, "");
1600   return Op_RegL;
1601 }
1602 
1603 // Limits on vector size (number of elements) loaded into vector.
1604 const int Matcher::max_vector_size(const BasicType bt) {
1605   assert(is_java_primitive(bt), "only primitive type vectors");
1606   return vector_width_in_bytes(bt)/type2aelembytes(bt);
1607 }
1608 
1609 const int Matcher::min_vector_size(const BasicType bt) {
1610   return max_vector_size(bt); // Same as max.
1611 }
1612 
1613 const bool Matcher::supports_scalable_vector() {
1614   return false;
1615 }
1616 
1617 const int Matcher::scalable_vector_reg_size(const BasicType bt) {
1618   return -1;
1619 }
1620 
1621 // z/Architecture does support misaligned store/load at minimal extra cost.
1622 const bool Matcher::misaligned_vectors_ok() {
1623   return true;
1624 }
1625 
1626 // Not yet ported to z/Architecture.
1627 const bool Matcher::pass_original_key_for_aes() {
1628   return false;
1629 }
1630 
1631 // RETURNS: whether this branch offset is short enough that a short
1632 // branch can be used.
1633 //
1634 // If the platform does not provide any short branch variants, then
1635 // this method should return `false' for offset 0.
1636 //
1637 // `Compile::Fill_buffer' will decide on basis of this information
1638 // whether to do the pass `Compile::Shorten_branches' at all.
1639 //
1640 // And `Compile::Shorten_branches' will decide on basis of this


< prev index next >