src/cpu/x86/vm/sharedRuntime_x86_32.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6695810 Cdiff src/cpu/x86/vm/sharedRuntime_x86_32.cpp

src/cpu/x86/vm/sharedRuntime_x86_32.cpp

Print this page

        

*** 1918,1928 **** int i=0; int total_strings = 0; int first_arg_to_pass = 0; int total_c_args = 0; - int box_offset = java_lang_boxing_object::value_offset_in_bytes(); if( !method->is_static() ) { // Pass in receiver first in_sig_bt[i++] = T_OBJECT; first_arg_to_pass = 1; } --- 1918,1927 ----
*** 2129,2139 **** __ testl(in_reg, in_reg); __ jcc(Assembler::zero, skipUnbox); assert(dst.first()->is_stack() && (!dst.second()->is_valid() || dst.second()->is_stack()), "value(s) must go into stack slots"); ! if ( out_sig_bt[c_arg] == T_LONG ) { __ movl(rbx, Address(in_reg, box_offset + VMRegImpl::stack_slot_size)); __ movl(Address(rsp, reg2offset_out(dst.second())), rbx); } __ movl(in_reg, Address(in_reg, box_offset)); --- 2128,2141 ---- __ testl(in_reg, in_reg); __ jcc(Assembler::zero, skipUnbox); assert(dst.first()->is_stack() && (!dst.second()->is_valid() || dst.second()->is_stack()), "value(s) must go into stack slots"); ! ! BasicType bt = out_sig_bt[c_arg]; ! int box_offset = java_lang_boxing_object::value_offset_in_bytes(bt); ! if ( bt == T_LONG ) { __ movl(rbx, Address(in_reg, box_offset + VMRegImpl::stack_slot_size)); __ movl(Address(rsp, reg2offset_out(dst.second())), rbx); } __ movl(in_reg, Address(in_reg, box_offset));
src/cpu/x86/vm/sharedRuntime_x86_32.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File