aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/x86_64/CodeGen.zig
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2025-11-26 02:34:43 -0500
committerAndrew Kelley <andrewrk@noreply.codeberg.org>2025-11-27 05:05:59 +0100
commita1827d597723aff6236001bd0bb74a6b0bab9ce7 (patch)
tree8ac972914895e88893673c9a2b58af529163dc9c /src/codegen/x86_64/CodeGen.zig
parent51bb2b3d2d2361eb73ee659a12c32e101b98dd96 (diff)
downloadzig-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.zig6
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);