< 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 && !CompactStrings;
2058   case Op_StrEquals:
2059     return SpecialStringEquals && !CompactStrings;
2060   case Op_StrIndexOf:
2061     return SpecialStringIndexOf && !CompactStrings;
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 && !CompactStrings;
2058   case Op_StrEquals:
2059     return SpecialStringEquals && !CompactStrings;
2060   case Op_StrIndexOf:
2061     return SpecialStringIndexOf && !CompactStrings;
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   bool ret_value = match_rule_supported(opcode);
2073   // Add rules here.
2074 
2075   return ret_value;  // Per default match rules are supported.
2076 }
2077 
2078 const int Matcher::float_pressure(int default_pressure_threshold) {
2079   return default_pressure_threshold;
2080 }
2081 
2082 int Matcher::regnum_to_fpu_offset(int regnum) {
2083   // No user for this method?
2084   Unimplemented();
2085   return 999;
2086 }
2087 
2088 const bool Matcher::convL2FSupported(void) {
2089   // fcfids can do the conversion (>= Power7).
2090   // fcfid + frsp showed rounding problem when result should be 0x3f800001.
2091   return VM_Version::has_fcfids(); // False means that conversion is done by runtime call.
2092 }
2093 
2094 // Vector width in bytes.
2095 const int Matcher::vector_width_in_bytes(BasicType bt) {
2096   assert(MaxVectorSize == 8, "");
2097   return 8;


< prev index next >