src/cpu/x86/vm/templateTable_x86_64.cpp

changeset 2811
08ccee2c4dbf
parent 2807
bbe95b4337f1
child 2816
286c498ae0d4
     1.1 --- a/src/cpu/x86/vm/templateTable_x86_64.cpp	Wed Apr 20 18:29:35 2011 -0700
     1.2 +++ b/src/cpu/x86/vm/templateTable_x86_64.cpp	Thu Apr 21 00:25:40 2011 -0700
     1.3 @@ -3128,7 +3128,6 @@
     1.4      return;
     1.5    }
     1.6  
     1.7 -  assert(byte_no == f1_oop, "use this argument");
     1.8    prepare_invoke(rax, rbx, byte_no);
     1.9  
    1.10    // rax: CallSite object (f1)
    1.11 @@ -3139,14 +3138,14 @@
    1.12    Register rax_callsite      = rax;
    1.13    Register rcx_method_handle = rcx;
    1.14  
    1.15 -  if (ProfileInterpreter) {
    1.16 -    // %%% should make a type profile for any invokedynamic that takes a ref argument
    1.17 -    // profile this call
    1.18 -    __ profile_call(r13);
    1.19 -  }
    1.20 -
    1.21 -  __ load_heap_oop(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_lang_invoke_CallSite::target_offset_in_bytes, rcx)));
    1.22 +  // %%% should make a type profile for any invokedynamic that takes a ref argument
    1.23 +  // profile this call
    1.24 +  __ profile_call(r13);
    1.25 +
    1.26 +  __ verify_oop(rax_callsite);
    1.27 +  __ load_heap_oop(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_lang_invoke_CallSite::target_offset_in_bytes, rdx)));
    1.28    __ null_check(rcx_method_handle);
    1.29 +  __ verify_oop(rcx_method_handle);
    1.30    __ prepare_to_jump_from_interpreted();
    1.31    __ jump_to_method_handle_entry(rcx_method_handle, rdx);
    1.32  }

mercurial