comparison 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
comparison
equal deleted inserted replaced
1845:a222fcfba398 1846:d55217dc206f
3109 assert(byte_no == f1_oop, "use this argument"); 3109 assert(byte_no == f1_oop, "use this argument");
3110 prepare_invoke(rax, rbx, byte_no); 3110 prepare_invoke(rax, rbx, byte_no);
3111 3111
3112 // rax: CallSite object (f1) 3112 // rax: CallSite object (f1)
3113 // rbx: unused (f2) 3113 // rbx: unused (f2)
3114 // rcx: receiver address
3114 // rdx: flags (unused) 3115 // rdx: flags (unused)
3115 3116
3117 Register rax_callsite = rax;
3118 Register rcx_method_handle = rcx;
3119
3116 if (ProfileInterpreter) { 3120 if (ProfileInterpreter) {
3117 Label L;
3118 // %%% should make a type profile for any invokedynamic that takes a ref argument 3121 // %%% should make a type profile for any invokedynamic that takes a ref argument
3119 // profile this call 3122 // profile this call
3120 __ profile_call(rsi); 3123 __ profile_call(rsi);
3121 } 3124 }
3122 3125
3123 __ movptr(rcx, Address(rax, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx))); 3126 __ movptr(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
3124 __ null_check(rcx); 3127 __ null_check(rcx_method_handle);
3125 __ prepare_to_jump_from_interpreted(); 3128 __ prepare_to_jump_from_interpreted();
3126 __ jump_to_method_handle_entry(rcx, rdx); 3129 __ jump_to_method_handle_entry(rcx_method_handle, rdx);
3127 } 3130 }
3128 3131
3129 //---------------------------------------------------------------------------------------------------- 3132 //----------------------------------------------------------------------------------------------------
3130 // Allocation 3133 // Allocation
3131 3134