1.1 --- a/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Wed May 21 13:46:23 2008 -0700 1.2 +++ b/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Wed May 21 16:31:35 2008 -0700 1.3 @@ -1950,7 +1950,6 @@ 1.4 int total_strings = 0; 1.5 int first_arg_to_pass = 0; 1.6 int total_c_args = 0; 1.7 - int box_offset = java_lang_boxing_object::value_offset_in_bytes(); 1.8 1.9 // Skip the receiver as dtrace doesn't want to see it 1.10 if( !method->is_static() ) { 1.11 @@ -2197,8 +2196,10 @@ 1.12 __ testq(in_reg, in_reg); 1.13 __ jcc(Assembler::zero, skipUnbox); 1.14 1.15 + BasicType bt = out_sig_bt[c_arg]; 1.16 + int box_offset = java_lang_boxing_object::value_offset_in_bytes(bt); 1.17 Address src1(in_reg, box_offset); 1.18 - if ( out_sig_bt[c_arg] == T_LONG ) { 1.19 + if ( bt == T_LONG ) { 1.20 __ movq(in_reg, src1); 1.21 __ movq(stack_dst, in_reg); 1.22 assert(out_sig_bt[c_arg+1] == T_VOID, "must be"); 1.23 @@ -2460,8 +2461,10 @@ 1.24 Label skip; 1.25 __ testq(r, r); 1.26 __ jcc(Assembler::equal, skip); 1.27 + BasicType bt = out_sig_bt[c_arg]; 1.28 + int box_offset = java_lang_boxing_object::value_offset_in_bytes(bt); 1.29 Address src1(r, box_offset); 1.30 - if ( out_sig_bt[c_arg] == T_LONG ) { 1.31 + if ( bt == T_LONG ) { 1.32 __ movq(r, src1); 1.33 } else { 1.34 __ movl(r, src1);