- x86_64: Copy arguments into the shadow store when generating a variadic function on Win64

- x86_64: Implement @cVaStart for Win64
- x86_64: Implement @cVaArg for Win64
- x86_64: Duplicate floating point register args equivalent integer registers when calling variadic functions on Win64
- tests: Enable var_args tests for the self-hosted backend on windows
- tests: Add var_args test for floating point arguments
This commit is contained in:
kcbanner
2026-03-25 02:54:38 -04:00
parent 4e3fcbea84
commit ca99896d73
3 changed files with 198 additions and 46 deletions
+1 -1
View File
@@ -991,7 +991,7 @@ pub const EmitArtifact = enum {
/// paths under the output directory, where those paths are named according to this function.
/// Returned string is allocated with `gpa` and owned by the caller.
pub fn cacheName(ea: EmitArtifact, gpa: Allocator, opts: BinNameOptions) Allocator.Error![]const u8 {
// hack for stage2_x86_64 + coff
// hack for stage2_x86_64 + coff. See Coff.flush.
if (ea == .compiler_rt_dyn_lib) return "compiler_rt.dll";
const suffix: []const u8 = switch (ea) {
.bin => return binNameAlloc(gpa, opts),