| ... | ... | @@ -19326,12 +19326,12 @@ fn resolveCallingConventionValues( |
| 19326 | 19326 | result.return_value = InstTracking.init(.unreach); |
| 19327 | 19327 | result.stack_align = .@"8"; |
| 19328 | 19328 | }, |
| 19329 | | .x86_64_sysv, .x86_64_win => { |
| 19329 | .x86_64_sysv, .x86_64_win => |cc_opts| { |
| 19330 | 19330 | var ret_int_reg_i: u32 = 0; |
| 19331 | 19331 | var ret_sse_reg_i: u32 = 0; |
| 19332 | 19332 | var param_int_reg_i: u32 = 0; |
| 19333 | 19333 | var param_sse_reg_i: u32 = 0; |
| 19334 | | result.stack_align = .@"16"; |
| 19334 | result.stack_align = .fromByteUnits(cc_opts.incoming_stack_alignment orelse 16); |
| 19335 | 19335 | |
| 19336 | 19336 | switch (resolved_cc) { |
| 19337 | 19337 | .x86_64_sysv => {}, |
| ... | ... | @@ -19512,10 +19512,13 @@ fn resolveCallingConventionValues( |
| 19512 | 19512 | } |
| 19513 | 19513 | |
| 19514 | 19514 | const param_size: u31 = @intCast(ty.abiSize(zcu)); |
| 19515 | | const param_align: u31 = |
| 19516 | | @intCast(@max(ty.abiAlignment(zcu).toByteUnits().?, 8)); |
| 19517 | | result.stack_byte_count = |
| 19518 | | mem.alignForward(u31, result.stack_byte_count, param_align); |
| 19515 | const param_align = ty.abiAlignment(zcu).max(.@"8"); |
| 19516 | result.stack_byte_count = mem.alignForward( |
| 19517 | u31, |
| 19518 | result.stack_byte_count, |
| 19519 | @intCast(param_align.toByteUnits().?), |
| 19520 | ); |
| 19521 | result.stack_align = result.stack_align.max(param_align); |
| 19519 | 19522 | arg.* = .{ .load_frame = .{ |
| 19520 | 19523 | .index = stack_frame_base, |
| 19521 | 19524 | .off = result.stack_byte_count, |
| ... | ... | @@ -19557,9 +19560,13 @@ fn resolveCallingConventionValues( |
| 19557 | 19560 | continue; |
| 19558 | 19561 | } |
| 19559 | 19562 | const param_size: u31 = @intCast(ty.abiSize(zcu)); |
| 19560 | | const param_align: u31 = @intCast(ty.abiAlignment(zcu).toByteUnits().?); |
| 19561 | | result.stack_byte_count = |
| 19562 | | mem.alignForward(u31, result.stack_byte_count, param_align); |
| 19563 | const param_align = ty.abiAlignment(zcu); |
| 19564 | result.stack_byte_count = mem.alignForward( |
| 19565 | u31, |
| 19566 | result.stack_byte_count, |
| 19567 | @intCast(param_align.toByteUnits().?), |
| 19568 | ); |
| 19569 | result.stack_align = result.stack_align.max(param_align); |
| 19563 | 19570 | arg.* = .{ .load_frame = .{ |
| 19564 | 19571 | .index = stack_frame_base, |
| 19565 | 19572 | .off = result.stack_byte_count, |