src/cpu/x86/vm/methodHandles_x86.cpp

changeset 2639
8033953d67ff
parent 2603
1b4e6a5d98e0
child 2868
2e038ad0c1d0
     1.1 --- a/src/cpu/x86/vm/methodHandles_x86.cpp	Fri Mar 11 22:33:47 2011 -0800
     1.2 +++ b/src/cpu/x86/vm/methodHandles_x86.cpp	Fri Mar 11 22:34:57 2011 -0800
     1.3 @@ -125,9 +125,9 @@
     1.4    }
     1.5  
     1.6    // given the MethodType, find out where the MH argument is buried
     1.7 -  __ load_heap_oop(rdx_temp, Address(rax_mtype, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, rdi_temp)));
     1.8 +  __ load_heap_oop(rdx_temp, Address(rax_mtype, __ delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes, rdi_temp)));
     1.9    Register rdx_vmslots = rdx_temp;
    1.10 -  __ movl(rdx_vmslots, Address(rdx_temp, __ delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, rdi_temp)));
    1.11 +  __ movl(rdx_vmslots, Address(rdx_temp, __ delayed_value(java_lang_invoke_MethodTypeForm::vmslots_offset_in_bytes, rdi_temp)));
    1.12    __ movptr(rcx_recv, __ argument_address(rdx_vmslots));
    1.13  
    1.14    trace_method_handle(_masm, "invokeExact");
    1.15 @@ -154,11 +154,11 @@
    1.16                     rcx_argslot, rbx_temp, rdx_temp);
    1.17  
    1.18    // load up an adapter from the calling type (Java weaves this)
    1.19 -  __ load_heap_oop(rdx_temp, Address(rax_mtype, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, rdi_temp)));
    1.20 +  __ load_heap_oop(rdx_temp, Address(rax_mtype, __ delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes, rdi_temp)));
    1.21    Register rdx_adapter = rdx_temp;
    1.22 -  // __ load_heap_oop(rdx_adapter, Address(rdx_temp, java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes()));
    1.23 +  // __ load_heap_oop(rdx_adapter, Address(rdx_temp, java_lang_invoke_MethodTypeForm::genericInvoker_offset_in_bytes()));
    1.24    // deal with old JDK versions:
    1.25 -  __ lea(rdi_temp, Address(rdx_temp, __ delayed_value(java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes, rdi_temp)));
    1.26 +  __ lea(rdi_temp, Address(rdx_temp, __ delayed_value(java_lang_invoke_MethodTypeForm::genericInvoker_offset_in_bytes, rdi_temp)));
    1.27    __ cmpptr(rdi_temp, rdx_temp);
    1.28    Label sorry_no_invoke_generic;
    1.29    __ jcc(Assembler::below, sorry_no_invoke_generic);
    1.30 @@ -371,16 +371,16 @@
    1.31  
    1.32  // which conversion op types are implemented here?
    1.33  int MethodHandles::adapter_conversion_ops_supported_mask() {
    1.34 -  return ((1<<sun_dyn_AdapterMethodHandle::OP_RETYPE_ONLY)
    1.35 -         |(1<<sun_dyn_AdapterMethodHandle::OP_RETYPE_RAW)
    1.36 -         |(1<<sun_dyn_AdapterMethodHandle::OP_CHECK_CAST)
    1.37 -         |(1<<sun_dyn_AdapterMethodHandle::OP_PRIM_TO_PRIM)
    1.38 -         |(1<<sun_dyn_AdapterMethodHandle::OP_REF_TO_PRIM)
    1.39 -         |(1<<sun_dyn_AdapterMethodHandle::OP_SWAP_ARGS)
    1.40 -         |(1<<sun_dyn_AdapterMethodHandle::OP_ROT_ARGS)
    1.41 -         |(1<<sun_dyn_AdapterMethodHandle::OP_DUP_ARGS)
    1.42 -         |(1<<sun_dyn_AdapterMethodHandle::OP_DROP_ARGS)
    1.43 -         //|(1<<sun_dyn_AdapterMethodHandle::OP_SPREAD_ARGS) //BUG!
    1.44 +  return ((1<<java_lang_invoke_AdapterMethodHandle::OP_RETYPE_ONLY)
    1.45 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_RETYPE_RAW)
    1.46 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_CHECK_CAST)
    1.47 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_PRIM)
    1.48 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_REF_TO_PRIM)
    1.49 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_SWAP_ARGS)
    1.50 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_ROT_ARGS)
    1.51 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_DUP_ARGS)
    1.52 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_DROP_ARGS)
    1.53 +         //|(1<<java_lang_invoke_AdapterMethodHandle::OP_SPREAD_ARGS) //BUG!
    1.54           );
    1.55    // FIXME: MethodHandlesTest gets a crash if we enable OP_SPREAD_ARGS.
    1.56  }
    1.57 @@ -415,21 +415,21 @@
    1.58    const Register rarg2_required = LP64_ONLY(j_rarg2) NOT_LP64(rdi);
    1.59    assert_different_registers(rarg0_code, rarg1_actual, rarg2_required, saved_last_sp);
    1.60  
    1.61 -  guarantee(java_dyn_MethodHandle::vmentry_offset_in_bytes() != 0, "must have offsets");
    1.62 +  guarantee(java_lang_invoke_MethodHandle::vmentry_offset_in_bytes() != 0, "must have offsets");
    1.63  
    1.64    // some handy addresses
    1.65    Address rbx_method_fie(     rbx,      methodOopDesc::from_interpreted_offset() );
    1.66    Address rbx_method_fce(     rbx,      methodOopDesc::from_compiled_offset() );
    1.67  
    1.68 -  Address rcx_mh_vmtarget(    rcx_recv, java_dyn_MethodHandle::vmtarget_offset_in_bytes() );
    1.69 -  Address rcx_dmh_vmindex(    rcx_recv, sun_dyn_DirectMethodHandle::vmindex_offset_in_bytes() );
    1.70 +  Address rcx_mh_vmtarget(    rcx_recv, java_lang_invoke_MethodHandle::vmtarget_offset_in_bytes() );
    1.71 +  Address rcx_dmh_vmindex(    rcx_recv, java_lang_invoke_DirectMethodHandle::vmindex_offset_in_bytes() );
    1.72  
    1.73 -  Address rcx_bmh_vmargslot(  rcx_recv, sun_dyn_BoundMethodHandle::vmargslot_offset_in_bytes() );
    1.74 -  Address rcx_bmh_argument(   rcx_recv, sun_dyn_BoundMethodHandle::argument_offset_in_bytes() );
    1.75 +  Address rcx_bmh_vmargslot(  rcx_recv, java_lang_invoke_BoundMethodHandle::vmargslot_offset_in_bytes() );
    1.76 +  Address rcx_bmh_argument(   rcx_recv, java_lang_invoke_BoundMethodHandle::argument_offset_in_bytes() );
    1.77  
    1.78 -  Address rcx_amh_vmargslot(  rcx_recv, sun_dyn_AdapterMethodHandle::vmargslot_offset_in_bytes() );
    1.79 -  Address rcx_amh_argument(   rcx_recv, sun_dyn_AdapterMethodHandle::argument_offset_in_bytes() );
    1.80 -  Address rcx_amh_conversion( rcx_recv, sun_dyn_AdapterMethodHandle::conversion_offset_in_bytes() );
    1.81 +  Address rcx_amh_vmargslot(  rcx_recv, java_lang_invoke_AdapterMethodHandle::vmargslot_offset_in_bytes() );
    1.82 +  Address rcx_amh_argument(   rcx_recv, java_lang_invoke_AdapterMethodHandle::argument_offset_in_bytes() );
    1.83 +  Address rcx_amh_conversion( rcx_recv, java_lang_invoke_AdapterMethodHandle::conversion_offset_in_bytes() );
    1.84    Address vmarg;                // __ argument_address(vmargslot)
    1.85  
    1.86    const int java_mirror_offset = klassOopDesc::klass_part_offset_in_bytes() + Klass::java_mirror_offset_in_bytes();
    1.87 @@ -460,7 +460,7 @@
    1.88  
    1.89        Register rbx_method = rbx_temp;
    1.90        Label L_no_method;
    1.91 -      // FIXME: fill in _raise_exception_method with a suitable sun.dyn method
    1.92 +      // FIXME: fill in _raise_exception_method with a suitable java.lang.invoke method
    1.93        __ movptr(rbx_method, ExternalAddress((address) &_raise_exception_method));
    1.94        __ testptr(rbx_method, rbx_method);
    1.95        __ jccb(Assembler::zero, L_no_method);

mercurial