< prev index next >

src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp

Print this page

        

@@ -515,12 +515,15 @@
     }
 
     // Sort by size, largest first
     _xmm_registers.sort(xmm_compare_register_size);
 
+    // On Windows, the caller reserves stack space for spilling register arguments
+    const int arg_spill_size = frame::arg_reg_save_area_bytes;
+
     // Stack pointer must be 16 bytes aligned for the call
-    _spill_offset = _spill_size = align_up(xmm_spill_size + gp_spill_size, 16);
+    _spill_offset = _spill_size = align_up(xmm_spill_size + gp_spill_size + arg_spill_size, 16);
   }
 
 public:
   ZSaveLiveRegisters(MacroAssembler* masm, ZLoadBarrierStubC2* stub) :
       _masm(masm),
< prev index next >