zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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:
Mlib/std/debug/cpu_context.zig | 4++--
Mlib/zig.h | 48++++++++++++++++++++++++++++++++++++++----------
Msrc/Compilation.zig | 2++
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__"),