< prev index next >

src/hotspot/cpu/arm/arm.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


 989   return ret_value;  // Per default match rules are supported.
 990 }
 991 
 992 const bool Matcher::has_predicated_vectors(void) {
 993   return false;
 994 }
 995 
 996 const int Matcher::float_pressure(int default_pressure_threshold) {
 997   return default_pressure_threshold;
 998 }
 999 
1000 int Matcher::regnum_to_fpu_offset(int regnum) {
1001   return regnum - 32; // The FP registers are in the second chunk
1002 }
1003 
1004 // Vector width in bytes
1005 const int Matcher::vector_width_in_bytes(BasicType bt) {
1006   return MaxVectorSize;
1007 }
1008 








1009 // Vector ideal reg corresponding to specified size in bytes
1010 const uint Matcher::vector_ideal_reg(int size) {
1011   assert(MaxVectorSize >= size, "");
1012   switch(size) {
1013     case  8: return Op_VecD;
1014     case 16: return Op_VecX;
1015   }
1016   ShouldNotReachHere();
1017   return 0;
1018 }
1019 
1020 // Limits on vector size (number of elements) loaded into vector.
1021 const int Matcher::max_vector_size(const BasicType bt) {
1022   assert(is_java_primitive(bt), "only primitive type vectors");
1023   return vector_width_in_bytes(bt)/type2aelembytes(bt);
1024 }
1025 
1026 const int Matcher::min_vector_size(const BasicType bt) {
1027   assert(is_java_primitive(bt), "only primitive type vectors");
1028   return 8/type2aelembytes(bt);




 989   return ret_value;  // Per default match rules are supported.
 990 }
 991 
 992 const bool Matcher::has_predicated_vectors(void) {
 993   return false;
 994 }
 995 
 996 const int Matcher::float_pressure(int default_pressure_threshold) {
 997   return default_pressure_threshold;
 998 }
 999 
1000 int Matcher::regnum_to_fpu_offset(int regnum) {
1001   return regnum - 32; // The FP registers are in the second chunk
1002 }
1003 
1004 // Vector width in bytes
1005 const int Matcher::vector_width_in_bytes(BasicType bt) {
1006   return MaxVectorSize;
1007 }
1008 
1009 const bool Matcher::supports_scalable_vector() {
1010   return false;
1011 }
1012 
1013 const int Matcher::scalable_vector_reg_size(const BasicType bt) {
1014   return -1;
1015 }
1016 
1017 // Vector ideal reg corresponding to specified size in bytes
1018 const uint Matcher::vector_ideal_reg(int size) {
1019   assert(MaxVectorSize >= size, "");
1020   switch(size) {
1021     case  8: return Op_VecD;
1022     case 16: return Op_VecX;
1023   }
1024   ShouldNotReachHere();
1025   return 0;
1026 }
1027 
1028 // Limits on vector size (number of elements) loaded into vector.
1029 const int Matcher::max_vector_size(const BasicType bt) {
1030   assert(is_java_primitive(bt), "only primitive type vectors");
1031   return vector_width_in_bytes(bt)/type2aelembytes(bt);
1032 }
1033 
1034 const int Matcher::min_vector_size(const BasicType bt) {
1035   assert(is_java_primitive(bt), "only primitive type vectors");
1036   return 8/type2aelembytes(bt);


< prev index next >