7150051: incorrect oopmap in critical native
authornever
Thu, 01 Mar 2012 15:31:33 -0800
changeset 11965 a9882cd6807c
parent 11964 96fb8c3562f7
child 11966 b71455d69d36
child 12105 1eba98dc2b50
7150051: incorrect oopmap in critical native Reviewed-by: kvn, twisti
hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp
--- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp	Tue Feb 28 09:13:58 2012 +0100
+++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp	Thu Mar 01 15:31:33 2012 -0800
@@ -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