src/cpu/x86/vm/templateTable_x86_32.cpp

changeset 2201
d55217dc206f
parent 2138
d5d065957597
child 2268
3b2dea75431e
     1.1 --- a/src/cpu/x86/vm/templateTable_x86_32.cpp	Fri Oct 08 02:42:17 2010 -0700
     1.2 +++ b/src/cpu/x86/vm/templateTable_x86_32.cpp	Mon Oct 11 04:18:58 2010 -0700
     1.3 @@ -3111,19 +3111,22 @@
     1.4  
     1.5    // rax: CallSite object (f1)
     1.6    // rbx: unused (f2)
     1.7 +  // rcx: receiver address
     1.8    // rdx: flags (unused)
     1.9  
    1.10 +  Register rax_callsite      = rax;
    1.11 +  Register rcx_method_handle = rcx;
    1.12 +
    1.13    if (ProfileInterpreter) {
    1.14 -    Label L;
    1.15      // %%% should make a type profile for any invokedynamic that takes a ref argument
    1.16      // profile this call
    1.17      __ profile_call(rsi);
    1.18    }
    1.19  
    1.20 -  __ movptr(rcx, Address(rax, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
    1.21 -  __ null_check(rcx);
    1.22 +  __ movptr(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
    1.23 +  __ null_check(rcx_method_handle);
    1.24    __ prepare_to_jump_from_interpreted();
    1.25 -  __ jump_to_method_handle_entry(rcx, rdx);
    1.26 +  __ jump_to_method_handle_entry(rcx_method_handle, rdx);
    1.27  }
    1.28  
    1.29  //----------------------------------------------------------------------------------------------------

mercurial