Thu, 19 Jan 2012 17:20:39 -0800
Merge
1.1 --- a/src/cpu/sparc/vm/methodHandles_sparc.cpp Thu Jan 19 10:56:51 2012 -0800 1.2 +++ b/src/cpu/sparc/vm/methodHandles_sparc.cpp Thu Jan 19 17:20:39 2012 -0800 1.3 @@ -1045,7 +1045,7 @@ 1.4 |(1<<java_lang_invoke_AdapterMethodHandle::OP_DROP_ARGS) 1.5 // OP_COLLECT_ARGS is below... 1.6 |(1<<java_lang_invoke_AdapterMethodHandle::OP_SPREAD_ARGS) 1.7 - |(!UseRicochetFrames ? 0 : 1.8 + |( 1.9 java_lang_invoke_MethodTypeForm::vmlayout_offset_in_bytes() <= 0 ? 0 : 1.10 ((1<<java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_REF) 1.11 |(1<<java_lang_invoke_AdapterMethodHandle::OP_COLLECT_ARGS)
2.1 --- a/src/cpu/x86/vm/methodHandles_x86.cpp Thu Jan 19 10:56:51 2012 -0800 2.2 +++ b/src/cpu/x86/vm/methodHandles_x86.cpp Thu Jan 19 17:20:39 2012 -0800 2.3 @@ -1005,7 +1005,7 @@ 2.4 intptr_t* base_sp = last_sp; 2.5 typedef MethodHandles::RicochetFrame RicochetFrame; 2.6 RicochetFrame* rfp = (RicochetFrame*)((address)saved_bp - RicochetFrame::sender_link_offset_in_bytes()); 2.7 - if (!UseRicochetFrames || Universe::heap()->is_in((address) rfp->saved_args_base())) { 2.8 + if (Universe::heap()->is_in((address) rfp->saved_args_base())) { 2.9 // Probably an interpreter frame. 2.10 base_sp = (intptr_t*) saved_bp[frame::interpreter_frame_monitor_block_top_offset]; 2.11 } 2.12 @@ -1104,7 +1104,7 @@ 2.13 |(1<<java_lang_invoke_AdapterMethodHandle::OP_DROP_ARGS) 2.14 //OP_COLLECT_ARGS is below... 2.15 |(1<<java_lang_invoke_AdapterMethodHandle::OP_SPREAD_ARGS) 2.16 - |(!UseRicochetFrames ? 0 : 2.17 + |( 2.18 java_lang_invoke_MethodTypeForm::vmlayout_offset_in_bytes() <= 0 ? 0 : 2.19 ((1<<java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_REF) 2.20 |(1<<java_lang_invoke_AdapterMethodHandle::OP_COLLECT_ARGS)
3.1 --- a/src/cpu/zero/vm/methodHandles_zero.hpp Thu Jan 19 10:56:51 2012 -0800 3.2 +++ b/src/cpu/zero/vm/methodHandles_zero.hpp Thu Jan 19 17:20:39 2012 -0800 3.3 @@ -29,43 +29,3 @@ 3.4 adapter_code_size = 0 3.5 }; 3.6 3.7 -#define TARGET_ARCH_NYI_6939861 1 3.8 -// ..#ifdef TARGET_ARCH_NYI_6939861 3.9 -// .. // Here are some backward compatible declarations until the 6939861 ports are updated. 3.10 -// .. #define _adapter_flyby (_EK_LIMIT + 10) 3.11 -// .. #define _adapter_ricochet (_EK_LIMIT + 11) 3.12 -// .. #define _adapter_opt_spread_1 _adapter_opt_spread_1_ref 3.13 -// .. #define _adapter_opt_spread_more _adapter_opt_spread_ref 3.14 -// .. enum { 3.15 -// .. _INSERT_NO_MASK = -1, 3.16 -// .. _INSERT_REF_MASK = 0, 3.17 -// .. _INSERT_INT_MASK = 1, 3.18 -// .. _INSERT_LONG_MASK = 3 3.19 -// .. }; 3.20 -// .. static void get_ek_bound_mh_info(EntryKind ek, BasicType& arg_type, int& arg_mask, int& arg_slots) { 3.21 -// .. arg_type = ek_bound_mh_arg_type(ek); 3.22 -// .. arg_mask = 0; 3.23 -// .. arg_slots = type2size[arg_type];; 3.24 -// .. } 3.25 -// .. static void get_ek_adapter_opt_swap_rot_info(EntryKind ek, int& swap_bytes, int& rotate) { 3.26 -// .. int swap_slots = ek_adapter_opt_swap_slots(ek); 3.27 -// .. rotate = ek_adapter_opt_swap_mode(ek); 3.28 -// .. swap_bytes = swap_slots * Interpreter::stackElementSize; 3.29 -// .. } 3.30 -// .. static int get_ek_adapter_opt_spread_info(EntryKind ek) { 3.31 -// .. return ek_adapter_opt_spread_count(ek); 3.32 -// .. } 3.33 -// .. 3.34 -// .. static void insert_arg_slots(MacroAssembler* _masm, 3.35 -// .. RegisterOrConstant arg_slots, 3.36 -// .. int arg_mask, 3.37 -// .. Register argslot_reg, 3.38 -// .. Register temp_reg, Register temp2_reg, Register temp3_reg = noreg); 3.39 -// .. 3.40 -// .. static void remove_arg_slots(MacroAssembler* _masm, 3.41 -// .. RegisterOrConstant arg_slots, 3.42 -// .. Register argslot_reg, 3.43 -// .. Register temp_reg, Register temp2_reg, Register temp3_reg = noreg); 3.44 -// .. 3.45 -// .. static void trace_method_handle(MacroAssembler* _masm, const char* adaptername) PRODUCT_RETURN; 3.46 -// ..#endif //TARGET_ARCH_NYI_6939861
4.1 --- a/src/share/vm/prims/methodHandles.cpp Thu Jan 19 10:56:51 2012 -0800 4.2 +++ b/src/share/vm/prims/methodHandles.cpp Thu Jan 19 17:20:39 2012 -0800 4.3 @@ -194,9 +194,6 @@ 4.4 // MethodHandles::generate_adapters 4.5 // 4.6 void MethodHandles::generate_adapters() { 4.7 -#ifdef TARGET_ARCH_NYI_6939861 4.8 - if (FLAG_IS_DEFAULT(UseRicochetFrames)) UseRicochetFrames = false; 4.9 -#endif 4.10 if (!EnableInvokeDynamic || SystemDictionary::MethodHandle_klass() == NULL) return; 4.11 4.12 assert(_adapter_code == NULL, "generate only once"); 4.13 @@ -230,18 +227,6 @@ 4.14 } 4.15 4.16 4.17 -#ifdef TARGET_ARCH_NYI_6939861 4.18 -// these defs belong in methodHandles_<arch>.cpp 4.19 -frame MethodHandles::ricochet_frame_sender(const frame& fr, RegisterMap *map) { 4.20 - ShouldNotCallThis(); 4.21 - return fr; 4.22 -} 4.23 -void MethodHandles::ricochet_frame_oops_do(const frame& fr, OopClosure* f, const RegisterMap* reg_map) { 4.24 - ShouldNotCallThis(); 4.25 -} 4.26 -#endif //TARGET_ARCH_NYI_6939861 4.27 - 4.28 - 4.29 //------------------------------------------------------------------------------ 4.30 // MethodHandles::ek_supported 4.31 // 4.32 @@ -251,28 +236,11 @@ 4.33 case _adapter_unused_13: 4.34 return false; // not defined yet 4.35 case _adapter_prim_to_ref: 4.36 - return UseRicochetFrames && conv_op_supported(java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_REF); 4.37 + return conv_op_supported(java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_REF); 4.38 case _adapter_collect_args: 4.39 - return UseRicochetFrames && conv_op_supported(java_lang_invoke_AdapterMethodHandle::OP_COLLECT_ARGS); 4.40 + return conv_op_supported(java_lang_invoke_AdapterMethodHandle::OP_COLLECT_ARGS); 4.41 case _adapter_fold_args: 4.42 - return UseRicochetFrames && conv_op_supported(java_lang_invoke_AdapterMethodHandle::OP_FOLD_ARGS); 4.43 - case _adapter_opt_return_any: 4.44 - return UseRicochetFrames; 4.45 -#ifdef TARGET_ARCH_NYI_6939861 4.46 - // ports before 6939861 supported only three kinds of spread ops 4.47 - case _adapter_spread_args: 4.48 - // restrict spreads to three kinds: 4.49 - switch (ek) { 4.50 - case _adapter_opt_spread_0: 4.51 - case _adapter_opt_spread_1: 4.52 - case _adapter_opt_spread_more: 4.53 - break; 4.54 - default: 4.55 - return false; 4.56 - break; 4.57 - } 4.58 - break; 4.59 -#endif //TARGET_ARCH_NYI_6939861 4.60 + return conv_op_supported(java_lang_invoke_AdapterMethodHandle::OP_FOLD_ARGS); 4.61 } 4.62 return true; 4.63 } 4.64 @@ -1988,9 +1956,6 @@ 4.65 case _adapter_prim_to_ref: // boxer MH to use 4.66 case _adapter_collect_args: // method handle which collects the args 4.67 case _adapter_fold_args: // method handle which collects the args 4.68 - if (!UseRicochetFrames) { 4.69 - { err = "box/collect/fold operators are not supported"; break; } 4.70 - } 4.71 if (!java_lang_invoke_MethodHandle::is_instance(argument())) 4.72 { err = "MethodHandle adapter argument required"; break; } 4.73 arg_mtype = Handle(THREAD, java_lang_invoke_MethodHandle::type(argument())); 4.74 @@ -2370,7 +2335,6 @@ 4.75 4.76 case _adapter_prim_to_ref: 4.77 { 4.78 - assert(UseRicochetFrames, "else don't come here"); 4.79 // vminfo will be the location to insert the return value 4.80 vminfo = argslot; 4.81 ek_opt = _adapter_opt_collect_ref; 4.82 @@ -2436,20 +2400,6 @@ 4.83 4.84 case _adapter_spread_args: 4.85 { 4.86 -#ifdef TARGET_ARCH_NYI_6939861 4.87 - // ports before 6939861 supported only three kinds of spread ops 4.88 - if (!UseRicochetFrames) { 4.89 - int array_size = slots_pushed + 1; 4.90 - assert(array_size >= 0, ""); 4.91 - vminfo = array_size; 4.92 - switch (array_size) { 4.93 - case 0: ek_opt = _adapter_opt_spread_0; break; 4.94 - case 1: ek_opt = _adapter_opt_spread_1; break; 4.95 - default: ek_opt = _adapter_opt_spread_more; break; 4.96 - } 4.97 - break; 4.98 - } 4.99 -#endif //TARGET_ARCH_NYI_6939861 4.100 // vminfo will be the required length of the array 4.101 int array_size = (slots_pushed + 1) / (type2size[dest] == 2 ? 2 : 1); 4.102 vminfo = array_size; 4.103 @@ -2494,7 +2444,6 @@ 4.104 4.105 case _adapter_collect_args: 4.106 { 4.107 - assert(UseRicochetFrames, "else don't come here"); 4.108 int elem_slots = argument_slot_count(java_lang_invoke_MethodHandle::type(argument())); 4.109 // vminfo will be the location to insert the return value 4.110 vminfo = argslot; 4.111 @@ -2563,7 +2512,6 @@ 4.112 4.113 case _adapter_fold_args: 4.114 { 4.115 - assert(UseRicochetFrames, "else don't come here"); 4.116 int elem_slots = argument_slot_count(java_lang_invoke_MethodHandle::type(argument())); 4.117 // vminfo will be the location to insert the return value 4.118 vminfo = argslot + elem_slots;
5.1 --- a/src/share/vm/prims/methodHandles.hpp Thu Jan 19 10:56:51 2012 -0800 5.2 +++ b/src/share/vm/prims/methodHandles.hpp Thu Jan 19 17:20:39 2012 -0800 5.3 @@ -738,46 +738,6 @@ 5.4 #ifdef TARGET_ARCH_ppc 5.5 # include "methodHandles_ppc.hpp" 5.6 #endif 5.7 - 5.8 -#ifdef TARGET_ARCH_NYI_6939861 5.9 - // Here are some backward compatible declarations until the 6939861 ports are updated. 5.10 - #define _adapter_flyby (_EK_LIMIT + 10) 5.11 - #define _adapter_ricochet (_EK_LIMIT + 11) 5.12 - #define _adapter_opt_spread_1 _adapter_opt_spread_1_ref 5.13 - #define _adapter_opt_spread_more _adapter_opt_spread_ref 5.14 - enum { 5.15 - _INSERT_NO_MASK = -1, 5.16 - _INSERT_REF_MASK = 0, 5.17 - _INSERT_INT_MASK = 1, 5.18 - _INSERT_LONG_MASK = 3 5.19 - }; 5.20 - static void get_ek_bound_mh_info(EntryKind ek, BasicType& arg_type, int& arg_mask, int& arg_slots) { 5.21 - arg_type = ek_bound_mh_arg_type(ek); 5.22 - arg_mask = 0; 5.23 - arg_slots = type2size[arg_type];; 5.24 - } 5.25 - static void get_ek_adapter_opt_swap_rot_info(EntryKind ek, int& swap_bytes, int& rotate) { 5.26 - int swap_slots = ek_adapter_opt_swap_slots(ek); 5.27 - rotate = ek_adapter_opt_swap_mode(ek); 5.28 - swap_bytes = swap_slots * Interpreter::stackElementSize; 5.29 - } 5.30 - static int get_ek_adapter_opt_spread_info(EntryKind ek) { 5.31 - return ek_adapter_opt_spread_count(ek); 5.32 - } 5.33 - 5.34 - static void insert_arg_slots(MacroAssembler* _masm, 5.35 - RegisterOrConstant arg_slots, 5.36 - int arg_mask, 5.37 - Register argslot_reg, 5.38 - Register temp_reg, Register temp2_reg, Register temp3_reg = noreg); 5.39 - 5.40 - static void remove_arg_slots(MacroAssembler* _masm, 5.41 - RegisterOrConstant arg_slots, 5.42 - Register argslot_reg, 5.43 - Register temp_reg, Register temp2_reg, Register temp3_reg = noreg); 5.44 - 5.45 - static void trace_method_handle(MacroAssembler* _masm, const char* adaptername) PRODUCT_RETURN; 5.46 -#endif //TARGET_ARCH_NYI_6939861 5.47 }; 5.48 5.49
6.1 --- a/src/share/vm/runtime/globals.hpp Thu Jan 19 10:56:51 2012 -0800 6.2 +++ b/src/share/vm/runtime/globals.hpp Thu Jan 19 17:20:39 2012 -0800 6.3 @@ -3826,10 +3826,6 @@ 6.4 develop(bool, StressMethodHandleWalk, false, \ 6.5 "Process all method handles with MethodHandleWalk") \ 6.6 \ 6.7 - diagnostic(bool, UseRicochetFrames, true, \ 6.8 - "use ricochet stack frames for method handle combination, " \ 6.9 - "if the platform supports them") \ 6.10 - \ 6.11 experimental(bool, TrustFinalNonStaticFields, false, \ 6.12 "trust final non-static declarations for constant folding") \ 6.13 \
7.1 --- a/src/share/vm/runtime/sharedRuntime.cpp Thu Jan 19 10:56:51 2012 -0800 7.2 +++ b/src/share/vm/runtime/sharedRuntime.cpp Thu Jan 19 17:20:39 2012 -0800 7.3 @@ -121,7 +121,6 @@ 7.4 void SharedRuntime::generate_ricochet_blob() { 7.5 if (!EnableInvokeDynamic) return; // leave it as a null 7.6 7.7 -#ifndef TARGET_ARCH_NYI_6939861 7.8 // allocate space for the code 7.9 ResourceMark rm; 7.10 // setup code generation tools 7.11 @@ -142,7 +141,6 @@ 7.12 } 7.13 7.14 _ricochet_blob = RicochetBlob::create(&buffer, bounce_offset, exception_offset, frame_size_in_words); 7.15 -#endif 7.16 } 7.17 7.18