Index: vm/port/src/lil/em64t/pim/lil_code_generator_em64t.cpp =================================================================== --- vm/port/src/lil/em64t/pim/lil_code_generator_em64t.cpp (revision 514649) +++ vm/port/src/lil/em64t/pim/lil_code_generator_em64t.cpp (working copy) @@ -1587,6 +1587,9 @@ } case LCK_Call: case LCK_CallNoRet: { +#ifdef _WIN64 + buf = alu(buf, add_opc, rsp_opnd, Imm_Opnd(-SHADOW), size_64); +#endif if (lil_operand_is_immed(target)) { // check if we can perform relative call int64 target_value = lil_operand_get_immed(target); @@ -1618,6 +1621,9 @@ const LcgEM64TLoc * loc = get_op_loc(target, false); buf = ::call(buf, get_rm_opnd(loc), size_64); } +#ifdef _WIN64 + buf = alu(buf, add_opc, rsp_opnd, Imm_Opnd(SHADOW), size_64); +#endif take_inputs_from_stack = true; break; }