commit 7be3b1de455c9cf247dc3ab8c4fd75c9b16d77cf (tree)
parent 8a95ac777bcb2b14f94b3e279be6ae31f286ccb2
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Sun, 31 May 2026 11:02:24 +0200
Merge pull request '`zig.h`: support more targets' (#35553) from alexrp/zig:more-zig.h-targets into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/35553
Diffstat:
3 files changed, 42 insertions(+), 12 deletions(-)
diff --git a/lib/std/debug/cpu_context.zig b/lib/std/debug/cpu_context.zig
@@ -350,7 +350,7 @@ const Alpha = extern struct {
\\1:
\\ stq $1, 0x100($0)
:
- : [ctx] "{r0}" (&ctx),
+ : [ctx] "{$0}" (&ctx),
: .{ .r1 = true, .memory = true });
return ctx;
}
@@ -362,7 +362,7 @@ const Alpha = extern struct {
return ctx.pc;
}
- pub fn dwarfRegisterBytes(ctx: *Aarch64, register_num: u16) DwarfRegisterError![]u8 {
+ pub fn dwarfRegisterBytes(ctx: *Alpha, register_num: u16) DwarfRegisterError![]u8 {
switch (register_num) {
0...31 => return @ptrCast(&ctx.r[register_num]),
64 => return @ptrCast(&ctx.pc),
diff --git a/lib/zig.h b/lib/zig.h
@@ -11,8 +11,6 @@
#elif defined(__GNUC__)
#define zig_gcc
#define zig_gnuc
-#elif defined(__IBMC__)
-#define zig_xlc
#elif defined(__TINYC__)
#define zig_tinyc
#elif defined(__slimcc__)
@@ -28,8 +26,18 @@
#define zig_arm
#elif defined(__arm__)
#define zig_arm
+#elif defined(__arc__)
+#define zig_arc
+#elif defined(__csky__)
+#define zig_csky
#elif defined(__hexagon__)
#define zig_hexagon
+#elif defined(__hppa__) && defined(_LP64)
+#define zig_hppa64
+#define zig_hppa
+#elif defined(__hppa__)
+#define zig_hppa32
+#define zig_hppa
#elif defined(__kvx__)
#define zig_kvx
#elif defined(__loongarch32)
@@ -42,6 +50,8 @@
#define zig_m68k
#elif defined(__m88k__)
#define zig_m88k
+#elif defined(__microblaze__)
+#define zig_microblaze
#elif defined(__mips64)
#define zig_mips64
#define zig_mips
@@ -64,6 +74,8 @@
#define zig_riscv
#elif defined(__s390x__)
#define zig_s390x
+#elif defined(__sh__)
+#define zig_sh
#elif defined(__sparc__) && defined(__arch64__)
#define zig_sparc64
#define zig_sparc
@@ -100,32 +112,30 @@
#define zig_big_endian 1
#endif
-#if defined(__MACH__)
+#if defined(__APPLE__)
#define zig_darwin
#elif defined(__DragonFly__)
#define zig_dragonfly
-#define zig_bsd
#elif defined(__EMSCRIPTEN__)
#define zig_emscripten
#elif defined(__FreeBSD__)
#define zig_freebsd
-#define zig_bsd
#elif defined(__Fuchsia__)
#define zig_fuchsia
#elif defined(__HAIKU__)
#define zig_haiku
#elif defined(__gnu_hurd__)
#define zig_hurd
+#elif defined(__illumos__)
+#define zig_illumos
#elif defined(__linux__)
#define zig_linux
#elif defined(__NetBSD__)
#define zig_netbsd
-#define zig_bsd
#elif defined(__OpenBSD__)
#define zig_openbsd
-#define zig_bsd
-#elif defined(__SVR4)
-#define zig_solaris
+#elif defined(__serenity__)
+#define zig_serenity
#elif defined(__wasi__)
#define zig_wasi
#elif defined(_WIN32)
@@ -404,14 +414,22 @@
#define zig_trap() __asm__ volatile("udf #0xfe")
#elif defined(zig_arm) || defined(zig_aarch64)
#define zig_trap() __asm__ volatile("udf #0xfdee")
+#elif defined(zig_arc)
+#define zig_trap() __asm__ volatile("unimp_s")
+#elif defined(zig_csky)
+#define zig_trap() __asm__ volatile(".word 0x3fff")
#elif defined(zig_hexagon)
#define zig_trap() __asm__ volatile("r27:26 = memd(#0xbadc0fee)")
+#elif defined(zig_hppa)
+#define zig_trap() __asm__ volatile("iitlbp %r0, (%sr0, %r0)")
#elif defined(zig_kvx) || defined(zig_loongarch) || defined(zig_powerpc)
#define zig_trap() __asm__ volatile(".word 0x0")
#elif defined(zig_m68k)
#define zig_trap() __asm__ volatile("illegal")
#elif defined(zig_m88k)
#define zig_trap() __asm__ volatile("tb0 0, %%r0, 511")
+#elif defined(zig_microblaze)
+#define zig_trap() __asm__ volatile("getd r0, r0")
#elif defined(zig_mips)
#define zig_trap() __asm__ volatile(".word 0x3d")
#elif defined(zig_or1k)
@@ -420,6 +438,8 @@
#define zig_trap() __asm__ volatile("unimp")
#elif defined(zig_s390x)
#define zig_trap() __asm__ volatile("j 0x2")
+#elif defined(zig_sh)
+#define zig_trap() __asm__ volatile(".word 0x0001")
#elif defined(zig_sparc)
#define zig_trap() __asm__ volatile("illtrap")
#elif defined(zig_x86_16)
@@ -446,16 +466,22 @@
#if defined(zig_alpha)
#define zig_breakpoint() __asm__ volatile("call_pal 0x000080")
-#elif defined(zig_arm)
+#elif defined(zig_arm) || defined(zig_csky)
#define zig_breakpoint() __asm__ volatile("bkpt #0x0")
#elif defined(zig_aarch64)
#define zig_breakpoint() __asm__ volatile("brk #0xf000")
+#elif defined(zig_arc)
+#define zig_breakpoint() __asm__ volatile("brk_s")
#elif defined(zig_hexagon)
#define zig_breakpoint() __asm__ volatile("brkpt")
+#elif defined(zig_hppa)
+#define zig_breakpoint() __asm__ volatile("break 0x04, 0x0008")
#elif defined(zig_kvx) || defined(zig_loongarch)
#define zig_breakpoint() __asm__ volatile("break 0x0")
#elif defined(zig_m88k)
#define zig_breakpoint() __asm__ volatile("illop1")
+#elif defined(zig_microblaze)
+#define zig_breakpoint() __asm__ volatile("brki r16, 0x0018")
#elif defined(zig_mips)
#define zig_breakpoint() __asm__ volatile("break")
#elif defined(zig_or1k)
@@ -466,6 +492,8 @@
#define zig_breakpoint() __asm__ volatile("ebreak")
#elif defined(zig_s390x)
#define zig_breakpoint() __asm__ volatile("j 0x6")
+#elif defined(zig_sh)
+#define zig_breakpoint() __asm__ volatile("trapa #0xc3")
#elif defined(zig_sparc)
#define zig_breakpoint() __asm__ volatile("ta 0x1")
#elif defined(zig_x86)
diff --git a/src/Compilation.zig b/src/Compilation.zig
@@ -6342,6 +6342,8 @@ fn addCommonCCArgs(
// LLVM doesn't distinguish between Solaris and illumos, but the illumos GCC fork
// defines this macro.
.illumos => try argv.append("__illumos__"),
+ // This macro has not yet been upstreamed by SerenityOS to Clang.
+ .serenity => try argv.append("__serenity__"),
// Homebrew targets without LLVM support; use communities's preferred macros.
.@"3ds" => try argv.append("-D__3DS__"),
.psp => try argv.append("-D__PSP__"),