< prev index next >

src/cpu/ppc/vm/ppc.ad

Print this page




2047   case Op_CountTrailingZerosL:
2048     if (!UseCountLeadingZerosInstructionsPPC64)
2049       return false;
2050     break;
2051 
2052   case Op_PopCountI:
2053   case Op_PopCountL:
2054     return (UsePopCountInstruction && VM_Version::has_popcntw());
2055 
2056   case Op_StrComp:
2057     return SpecialStringCompareTo;
2058   case Op_StrEquals:
2059     return SpecialStringEquals;
2060   case Op_StrIndexOf:
2061     return SpecialStringIndexOf;
2062   }
2063 
2064   return true;  // Per default match rules are supported.
2065 }
2066 















2067 const int Matcher::float_pressure(int default_pressure_threshold) {
2068   return default_pressure_threshold;
2069 }
2070 
2071 int Matcher::regnum_to_fpu_offset(int regnum) {
2072   // No user for this method?
2073   Unimplemented();
2074   return 999;
2075 }
2076 
2077 const bool Matcher::convL2FSupported(void) {
2078   // fcfids can do the conversion (>= Power7).
2079   // fcfid + frsp showed rounding problem when result should be 0x3f800001.
2080   return VM_Version::has_fcfids(); // False means that conversion is done by runtime call.
2081 }
2082 
2083 // Vector width in bytes.
2084 const int Matcher::vector_width_in_bytes(BasicType bt) {
2085   assert(MaxVectorSize == 8, "");
2086   return 8;




2047   case Op_CountTrailingZerosL:
2048     if (!UseCountLeadingZerosInstructionsPPC64)
2049       return false;
2050     break;
2051 
2052   case Op_PopCountI:
2053   case Op_PopCountL:
2054     return (UsePopCountInstruction && VM_Version::has_popcntw());
2055 
2056   case Op_StrComp:
2057     return SpecialStringCompareTo;
2058   case Op_StrEquals:
2059     return SpecialStringEquals;
2060   case Op_StrIndexOf:
2061     return SpecialStringIndexOf;
2062   }
2063 
2064   return true;  // Per default match rules are supported.
2065 }
2066 
2067 const bool Matcher::match_rule_supported_vector(int opcode, int vlen) {
2068 
2069   // TODO
2070   // identify extra cases that we might want to provide match rules for
2071   // e.g. Op_ vector nodes and other intrinsics while guarding with vlen
2072   if (!has_match_rule(opcode)) {
2073     return false;
2074   }
2075 
2076   bool ret_value = match_rule_supported(opcode);
2077   // Add rules here.
2078 
2079   return ret_value;  // Per default match rules are supported.
2080 }
2081 
2082 const int Matcher::float_pressure(int default_pressure_threshold) {
2083   return default_pressure_threshold;
2084 }
2085 
2086 int Matcher::regnum_to_fpu_offset(int regnum) {
2087   // No user for this method?
2088   Unimplemented();
2089   return 999;
2090 }
2091 
2092 const bool Matcher::convL2FSupported(void) {
2093   // fcfids can do the conversion (>= Power7).
2094   // fcfid + frsp showed rounding problem when result should be 0x3f800001.
2095   return VM_Version::has_fcfids(); // False means that conversion is done by runtime call.
2096 }
2097 
2098 // Vector width in bytes.
2099 const int Matcher::vector_width_in_bytes(BasicType bt) {
2100   assert(MaxVectorSize == 8, "");
2101   return 8;


< prev index next >