--- old/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Wed Feb 29 18:53:16 2012 +++ new/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Wed Feb 29 18:53:16 2012 @@ -1197,7 +1197,6 @@ if (in_regs[i].first()->is_Register() && (in_sig_bt[i] == T_LONG || in_sig_bt[i] == T_ARRAY)) { int offset = slot * VMRegImpl::stack_slot_size; - slot += VMRegImpl::slots_per_word; if (map != NULL) { __ movq(Address(rsp, offset), in_regs[i].first()->as_Register()); if (in_sig_bt[i] == T_ARRAY) { @@ -1206,6 +1205,7 @@ } else { __ movq(in_regs[i].first()->as_Register(), Address(rsp, offset)); } + slot += VMRegImpl::slots_per_word; } } // Save or restore single word registers