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 }