1.1 --- a/src/cpu/x86/vm/methodHandles_x86.cpp Fri Feb 11 12:05:43 2011 -0800 1.2 +++ b/src/cpu/x86/vm/methodHandles_x86.cpp Mon Feb 14 03:21:18 2011 -0800 1.3 @@ -602,24 +602,18 @@ 1.4 // make room for the new argument: 1.5 __ movl(rax_argslot, rcx_bmh_vmargslot); 1.6 __ lea(rax_argslot, __ argument_address(rax_argslot)); 1.7 - insert_arg_slots(_masm, arg_slots * stack_move_unit(), arg_mask, 1.8 - rax_argslot, rbx_temp, rdx_temp); 1.9 + 1.10 + insert_arg_slots(_masm, arg_slots * stack_move_unit(), arg_mask, rax_argslot, rbx_temp, rdx_temp); 1.11 1.12 // store bound argument into the new stack slot: 1.13 __ load_heap_oop(rbx_temp, rcx_bmh_argument); 1.14 - Address prim_value_addr(rbx_temp, java_lang_boxing_object::value_offset_in_bytes(arg_type)); 1.15 if (arg_type == T_OBJECT) { 1.16 __ movptr(Address(rax_argslot, 0), rbx_temp); 1.17 } else { 1.18 - __ load_sized_value(rdx_temp, prim_value_addr, 1.19 - type2aelembytes(arg_type), is_signed_subword_type(arg_type)); 1.20 - __ movptr(Address(rax_argslot, 0), rdx_temp); 1.21 -#ifndef _LP64 1.22 - if (arg_slots == 2) { 1.23 - __ movl(rdx_temp, prim_value_addr.plus_disp(wordSize)); 1.24 - __ movl(Address(rax_argslot, Interpreter::stackElementSize), rdx_temp); 1.25 - } 1.26 -#endif //_LP64 1.27 + Address prim_value_addr(rbx_temp, java_lang_boxing_object::value_offset_in_bytes(arg_type)); 1.28 + const int arg_size = type2aelembytes(arg_type); 1.29 + __ load_sized_value(rdx_temp, prim_value_addr, arg_size, is_signed_subword_type(arg_type), rbx_temp); 1.30 + __ store_sized_value(Address(rax_argslot, 0), rdx_temp, arg_size, rbx_temp); 1.31 } 1.32 1.33 if (direct_to_method) {