diff options
Diffstat (limited to 'src/codegen')
| -rw-r--r-- | src/codegen/c.zig | 6 | ||||
| -rw-r--r-- | src/codegen/llvm.zig | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig index e531125a40..86669aea93 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -8114,6 +8114,12 @@ fn toCallingConvention(cc: std.builtin.CallingConvention, zcu: *Zcu) ?[]const u8 }, .sh_renesas => "renesas", + .sh_interrupt => |opts| switch (opts.save) { + .fpscr => "trapa_handler", // Implies `interrupt_handler`. + .high => "interrupt_handler, nosave_low_regs", + .full => "interrupt_handler", + .bank => "interrupt_handler, resbank", + }, .m68k_rtd => "m68k_rtd", diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index 0bda369deb..50fed0c2d4 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -11837,6 +11837,7 @@ pub fn toLlvmCallConv(cc: std.builtin.CallingConvention, target: *const std.Targ std.builtin.CallingConvention.ArcInterruptOptions, std.builtin.CallingConvention.ArmInterruptOptions, std.builtin.CallingConvention.RiscvInterruptOptions, + std.builtin.CallingConvention.ShInterruptOptions, std.builtin.CallingConvention.MicroblazeInterruptOptions, std.builtin.CallingConvention.MipsInterruptOptions, std.builtin.CallingConvention.CommonOptions, @@ -11964,6 +11965,7 @@ fn toLlvmCallConvTag(cc_tag: std.builtin.CallingConvention.Tag, target: *const s .s390x_sysv_vx, .sh_gnu, .sh_renesas, + .sh_interrupt, .ve_sysv, .xcore_xs1, .xcore_xs2, |
