aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2025-10-20 19:47:51 +0200
committerAlex Rønne Petersen <alex@alexrp.com>2025-10-23 09:27:17 +0200
commit4fa453ce20ceaee254a7d127a4a99be2260ec605 (patch)
tree01106dafc6584838f788a8073af01ad4e71dacb8 /src/codegen
parentabf40caeb7d85d8fc842fe82215b19902b749481 (diff)
downloadzig-4fa453ce20ceaee254a7d127a4a99be2260ec605.tar.gz
zig-4fa453ce20ceaee254a7d127a4a99be2260ec605.zip
std.builtin: add CallingConvention.microblaze_interrupt
Only supported in CBE.
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/c.zig7
-rw-r--r--src/codegen/llvm.zig2
2 files changed, 9 insertions, 0 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
index a47d031520..e531125a40 100644
--- a/src/codegen/c.zig
+++ b/src/codegen/c.zig
@@ -8092,6 +8092,13 @@ fn toCallingConvention(cc: std.builtin.CallingConvention, zcu: *Zcu) ?[]const u8
.avr_signal => "signal",
+ .microblaze_interrupt => |opts| switch (opts.type) {
+ .user => "save_volatiles",
+ .regular => "interrupt_handler",
+ .fast => "fast_interrupt",
+ .breakpoint => "break_handler",
+ },
+
.mips_interrupt,
.mips64_interrupt,
=> |opts| switch (opts.mode) {
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index 9d23178887..0bda369deb 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.MicroblazeInterruptOptions,
std.builtin.CallingConvention.MipsInterruptOptions,
std.builtin.CallingConvention.CommonOptions,
=> .{ pl.incoming_stack_alignment, 0 },
@@ -11926,6 +11927,7 @@ fn toLlvmCallConvTag(cc_tag: std.builtin.CallingConvention.Tag, target: *const s
.aarch64_aapcs_win,
.alpha_osf,
.microblaze_std,
+ .microblaze_interrupt,
.mips64_n64,
.mips64_n32,
.mips_o32,