diff options
| author | Alex Rønne Petersen <alex@alexrp.com> | 2024-11-03 14:27:09 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-03 14:27:09 +0100 |
| commit | 3054486d1dedd49553680da2c074d1ab413797fd (patch) | |
| tree | 79c3d4e9b417d14ddb11a47e26da083d5e06e8aa /src/codegen/c.zig | |
| parent | 2f003f39b28176f08de51271eb66b5f3a54c7aae (diff) | |
| parent | e4e3d7ab4140ae6f078d3ffd72fce4c0a5e6e59f (diff) | |
| download | zig-3054486d1dedd49553680da2c074d1ab413797fd.tar.gz zig-3054486d1dedd49553680da2c074d1ab413797fd.zip | |
Merge pull request #21843 from alexrp/callconv-followup
Some follow-up work for #21697
Diffstat (limited to 'src/codegen/c.zig')
| -rw-r--r-- | src/codegen/c.zig | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 41ec422959..0410023588 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -7622,11 +7622,44 @@ fn toCallingConvention(cc: std.builtin.CallingConvention, zcu: *Zcu) ?[]const u8 .aarch64_vfabi => "aarch64_vector_pcs", .aarch64_vfabi_sve => "aarch64_sve_pcs", + .arm_aapcs => "pcs(\"aapcs\")", - .arm_aapcs_vfp => "pcs(\"aapcs-vfp\")", + .arm_aapcs_vfp, .arm_aapcs16_vfp => "pcs(\"aapcs-vfp\")", + + .arm_interrupt => |opts| switch (opts.type) { + .generic => "interrupt", + .irq => "interrupt(\"IRQ\")", + .fiq => "interrupt(\"FIQ\")", + .swi => "interrupt(\"SWI\")", + .abort => "interrupt(\"ABORT\")", + .undef => "interrupt(\"UNDEF\")", + }, + + .avr_signal => "signal", + + .mips_interrupt, + .mips64_interrupt, + => |opts| switch (opts.mode) { + inline else => |m| "interrupt(\"" ++ @tagName(m) ++ "\")", + }, + .riscv64_lp64_v, .riscv32_ilp32_v => "riscv_vector_cc", + + .riscv32_interrupt, + .riscv64_interrupt, + => |opts| switch (opts.mode) { + inline else => |m| "interrupt(\"" ++ @tagName(m) ++ "\")", + }, + .m68k_rtd => "m68k_rtd", + .avr_interrupt, + .csky_interrupt, + .m68k_interrupt, + .x86_interrupt, + .x86_64_interrupt, + => "interrupt", + else => unreachable, // `Zcu.callconvSupported` }; } |
