8035394: PPC64: Make usage of intrinsic dsqrt depend on processor recognition.

Thu, 20 Feb 2014 11:05:12 +0100

author
goetz
date
Thu, 20 Feb 2014 11:05:12 +0100
changeset 6510
7c462558a08a
parent 6509
2444afebe07b
child 6511
31e80afe3fed

8035394: PPC64: Make usage of intrinsic dsqrt depend on processor recognition.
Reviewed-by: kvn

src/cpu/ppc/vm/ppc.ad file | annotate | diff | comparison | revisions
src/share/vm/opto/library_call.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/cpu/ppc/vm/ppc.ad	Thu Feb 20 10:48:57 2014 +0100
     1.2 +++ b/src/cpu/ppc/vm/ppc.ad	Thu Feb 20 11:05:12 2014 +0100
     1.3 @@ -2076,6 +2076,8 @@
     1.4      return false;
     1.5  
     1.6    switch (opcode) {
     1.7 +  case Op_SqrtD:
     1.8 +    return VM_Version::has_fsqrt();
     1.9    case Op_CountLeadingZerosI:
    1.10    case Op_CountLeadingZerosL:
    1.11    case Op_CountTrailingZerosI:
    1.12 @@ -8740,7 +8742,7 @@
    1.13    ins_pipe(pipe_class_default);
    1.14  %}
    1.15  
    1.16 -// VM_Version::has_sqrt() decides if this node will be used.
    1.17 +// VM_Version::has_fsqrt() decides if this node will be used.
    1.18  // Sqrt float double precision
    1.19  instruct sqrtD_reg(regD dst, regD src) %{
    1.20    match(Set dst (SqrtD src));
     2.1 --- a/src/share/vm/opto/library_call.cpp	Thu Feb 20 10:48:57 2014 +0100
     2.2 +++ b/src/share/vm/opto/library_call.cpp	Thu Feb 20 11:05:12 2014 +0100
     2.3 @@ -1937,7 +1937,7 @@
     2.4      runtime_math(OptoRuntime::Math_D_D_Type(), FN_PTR(SharedRuntime::dlog10), "LOG10");
     2.5  
     2.6      // These intrinsics are supported on all hardware
     2.7 -  case vmIntrinsics::_dsqrt:  return Matcher::has_match_rule(Op_SqrtD)  ? inline_math(id) : false;
     2.8 +  case vmIntrinsics::_dsqrt:  return Matcher::match_rule_supported(Op_SqrtD) ? inline_math(id) : false;
     2.9    case vmIntrinsics::_dabs:   return Matcher::has_match_rule(Op_AbsD)   ? inline_math(id) : false;
    2.10  
    2.11    case vmIntrinsics::_dexp:   return Matcher::has_match_rule(Op_ExpD)   ? inline_exp()    :

mercurial