diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2025-11-26 02:34:43 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrewrk@noreply.codeberg.org> | 2025-11-27 05:05:59 +0100 |
| commit | a1827d597723aff6236001bd0bb74a6b0bab9ce7 (patch) | |
| tree | 8ac972914895e88893673c9a2b58af529163dc9c /src/codegen/x86_64/CodeGen.zig | |
| parent | 51bb2b3d2d2361eb73ee659a12c32e101b98dd96 (diff) | |
| download | zig-a1827d597723aff6236001bd0bb74a6b0bab9ce7.tar.gz zig-a1827d597723aff6236001bd0bb74a6b0bab9ce7.zip | |
x86_64: fix abi of a struct that partially fits in registers
Closes #26035
Diffstat (limited to 'src/codegen/x86_64/CodeGen.zig')
| -rw-r--r-- | src/codegen/x86_64/CodeGen.zig | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/codegen/x86_64/CodeGen.zig b/src/codegen/x86_64/CodeGen.zig index 99d768805f..08ca72a5d3 100644 --- a/src/codegen/x86_64/CodeGen.zig +++ b/src/codegen/x86_64/CodeGen.zig @@ -181159,6 +181159,9 @@ fn resolveCallingConventionValues( else => unreachable, } + const save_param_gpr_index = param_gpr_index; + const save_param_sse_index = param_gpr_index; + var arg_mcv: [4]MCValue = undefined; var arg_mcv_len: u32 = 0; @@ -181258,6 +181261,9 @@ fn resolveCallingConventionValues( continue; } + param_gpr_index = save_param_gpr_index; + param_sse_index = save_param_sse_index; + const param_align = ty.abiAlignment(zcu).max(.@"8"); result.stack_byte_count = @intCast(param_align.forward(result.stack_byte_count)); result.stack_align = result.stack_align.max(param_align); |
