--- a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp Fri Oct 08 02:42:17 2010 -0700
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp Mon Oct 11 04:18:58 2010 -0700
@@ -3120,17 +3120,19 @@
// rcx: receiver address
// rdx: flags (unused)
+ Register rax_callsite = rax;
+ Register rcx_method_handle = rcx;
+
if (ProfileInterpreter) {
- Label L;
// %%% should make a type profile for any invokedynamic that takes a ref argument
// profile this call
__ profile_call(r13);
}
- __ movptr(rcx, Address(rax, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
- __ null_check(rcx);
+ __ load_heap_oop(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
+ __ null_check(rcx_method_handle);
__ prepare_to_jump_from_interpreted();
- __ jump_to_method_handle_entry(rcx, rdx);
+ __ jump_to_method_handle_entry(rcx_method_handle, rdx);
}