diff src/cpu/x86/vm/templateTable_x86_32.cpp @ 1846:d55217dc206f

6829194: JSR 292 needs to support compressed oops Reviewed-by: kvn, jrose
author twisti
date Mon, 11 Oct 2010 04:18:58 -0700
parents d5d065957597
children 3b2dea75431e
line wrap: on
line diff
--- a/src/cpu/x86/vm/templateTable_x86_32.cpp	Fri Oct 08 02:42:17 2010 -0700
+++ b/src/cpu/x86/vm/templateTable_x86_32.cpp	Mon Oct 11 04:18:58 2010 -0700
@@ -3111,19 +3111,22 @@
 
   // rax: CallSite object (f1)
   // rbx: unused (f2)
+  // 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(rsi);
   }
 
-  __ movptr(rcx, Address(rax, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
-  __ null_check(rcx);
+  __ movptr(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);
 }
 
 //----------------------------------------------------------------------------------------------------