aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/c.zig6
-rw-r--r--src/codegen/llvm.zig2
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,