src/share/vm/prims/methodHandles.cpp

changeset 3105
c26de9aef2ed
parent 3035
43f9d800f276
child 3131
b0efc7ee3b31
     1.1 --- a/src/share/vm/prims/methodHandles.cpp	Fri Sep 02 04:28:59 2011 -0700
     1.2 +++ b/src/share/vm/prims/methodHandles.cpp	Fri Sep 02 20:58:21 2011 -0700
     1.3 @@ -158,6 +158,8 @@
     1.4    "adapter_fold/4/ref",
     1.5    "adapter_fold/5/ref",
     1.6  
     1.7 +  "adapter_opt_profiling",
     1.8 +
     1.9    NULL
    1.10  };
    1.11  
    1.12 @@ -2653,6 +2655,11 @@
    1.13    // Finalize the conversion field.  (Note that it is final to Java code.)
    1.14    java_lang_invoke_AdapterMethodHandle::set_conversion(mh(), new_conversion);
    1.15  
    1.16 +  if (java_lang_invoke_CountingMethodHandle::is_instance(mh())) {
    1.17 +    assert(ek_orig == _adapter_retype_only, "only one handled");
    1.18 +    ek_opt = _adapter_opt_profiling;
    1.19 +  }
    1.20 +
    1.21    // Done!
    1.22    java_lang_invoke_MethodHandle::set_vmentry(mh(), entry(ek_opt));
    1.23  
    1.24 @@ -2905,8 +2912,12 @@
    1.25      return MethodHandles::stack_move_unit();
    1.26    case MethodHandles::GC_CONV_OP_IMPLEMENTED_MASK:
    1.27      return MethodHandles::adapter_conversion_ops_supported_mask();
    1.28 -  case MethodHandles::GC_OP_ROT_ARGS_DOWN_LIMIT_BIAS:
    1.29 -    return MethodHandles::OP_ROT_ARGS_DOWN_LIMIT_BIAS;
    1.30 +  case MethodHandles::GC_COUNT_GWT:
    1.31 +#ifdef COMPILER2
    1.32 +    return true;
    1.33 +#else
    1.34 +    return false;
    1.35 +#endif
    1.36    }
    1.37    return 0;
    1.38  }

mercurial