1.1 --- a/src/cpu/sparc/vm/methodHandles_sparc.cpp Thu May 12 10:33:17 2011 -0700 1.2 +++ b/src/cpu/sparc/vm/methodHandles_sparc.cpp Thu May 12 14:04:48 2011 -0700 1.3 @@ -142,18 +142,8 @@ 1.4 Register O2_form = O2_scratch; 1.5 Register O3_adapter = O3_scratch; 1.6 __ load_heap_oop(Address(O0_mtype, __ delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes, O1_scratch)), O2_form); 1.7 - // load_heap_oop(Address(O2_form, __ delayed_value(java_lang_invoke_MethodTypeForm::genericInvoker_offset_in_bytes, O1_scratch)), O3_adapter); 1.8 - // deal with old JDK versions: 1.9 - __ add( Address(O2_form, __ delayed_value(java_lang_invoke_MethodTypeForm::genericInvoker_offset_in_bytes, O1_scratch)), O3_adapter); 1.10 - __ cmp(O3_adapter, O2_form); 1.11 - Label sorry_no_invoke_generic; 1.12 - __ brx(Assembler::lessUnsigned, false, Assembler::pn, sorry_no_invoke_generic); 1.13 - __ delayed()->nop(); 1.14 - 1.15 - __ load_heap_oop(Address(O3_adapter, 0), O3_adapter); 1.16 - __ tst(O3_adapter); 1.17 - __ brx(Assembler::zero, false, Assembler::pn, sorry_no_invoke_generic); 1.18 - __ delayed()->nop(); 1.19 + __ load_heap_oop(Address(O2_form, __ delayed_value(java_lang_invoke_MethodTypeForm::genericInvoker_offset_in_bytes, O1_scratch)), O3_adapter); 1.20 + __ verify_oop(O3_adapter); 1.21 __ st_ptr(O3_adapter, Address(O4_argbase, 1 * Interpreter::stackElementSize)); 1.22 // As a trusted first argument, pass the type being called, so the adapter knows 1.23 // the actual types of the arguments and return values. 1.24 @@ -164,12 +154,6 @@ 1.25 trace_method_handle(_masm, "invokeGeneric"); 1.26 __ jump_to_method_handle_entry(G3_method_handle, O1_scratch); 1.27 1.28 - __ bind(sorry_no_invoke_generic); // no invokeGeneric implementation available! 1.29 - __ mov(O0_mtype, G5_method_type); // required by throw_WrongMethodType 1.30 - // mov(G3_method_handle, G3_method_handle); // already in this register 1.31 - __ jump_to(AddressLiteral(Interpreter::throw_WrongMethodType_entry()), O1_scratch); 1.32 - __ delayed()->nop(); 1.33 - 1.34 return entry_point; 1.35 } 1.36