authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-05-31 11:02:24+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-05-31 11:02:24+02:00
log7be3b1de455c9cf247dc3ab8c4fd75c9b16d77cf
tree655a374980b2d3eb27cbed70eeab5688e951e5e9
parent8a95ac777bcb2b14f94b3e279be6ae31f286ccb2
parent259e11f60a9808325f0f2696ca76aee7506bc37a

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

3 files changed, 42 insertions(+), 12 deletions(-)

lib/std/debug/cpu_context.zig+2-2
......@@ -350,7 +350,7 @@ const Alpha = extern struct {
350350 \\1:
351351 \\ stq $1, 0x100($0)
352352 :
353 : [ctx] "{r0}" (&ctx),
353 : [ctx] "{$0}" (&ctx),
354354 : .{ .r1 = true, .memory = true });
355355 return ctx;
356356 }
......@@ -362,7 +362,7 @@ const Alpha = extern struct {
362362 return ctx.pc;
363363 }
364364
365 pub fn dwarfRegisterBytes(ctx: *Aarch64, register_num: u16) DwarfRegisterError![]u8 {
365 pub fn dwarfRegisterBytes(ctx: *Alpha, register_num: u16) DwarfRegisterError![]u8 {
366366 switch (register_num) {
367367 0...31 => return @ptrCast(&ctx.r[register_num]),
368368 64 => return @ptrCast(&ctx.pc),
lib/zig.h+38-10
......@@ -11,8 +11,6 @@
1111#elif defined(__GNUC__)
1212#define zig_gcc
1313#define zig_gnuc
14#elif defined(__IBMC__)
15#define zig_xlc
1614#elif defined(__TINYC__)
1715#define zig_tinyc
1816#elif defined(__slimcc__)
......@@ -28,8 +26,18 @@
2826#define zig_arm
2927#elif defined(__arm__)
3028#define zig_arm
29#elif defined(__arc__)
30#define zig_arc
31#elif defined(__csky__)
32#define zig_csky
3133#elif defined(__hexagon__)
3234#define zig_hexagon
35#elif defined(__hppa__) && defined(_LP64)
36#define zig_hppa64
37#define zig_hppa
38#elif defined(__hppa__)
39#define zig_hppa32
40#define zig_hppa
3341#elif defined(__kvx__)
3442#define zig_kvx
3543#elif defined(__loongarch32)
......@@ -42,6 +50,8 @@
4250#define zig_m68k
4351#elif defined(__m88k__)
4452#define zig_m88k
53#elif defined(__microblaze__)
54#define zig_microblaze
4555#elif defined(__mips64)
4656#define zig_mips64
4757#define zig_mips
......@@ -64,6 +74,8 @@
6474#define zig_riscv
6575#elif defined(__s390x__)
6676#define zig_s390x
77#elif defined(__sh__)
78#define zig_sh
6779#elif defined(__sparc__) && defined(__arch64__)
6880#define zig_sparc64
6981#define zig_sparc
......@@ -100,32 +112,30 @@
100112#define zig_big_endian 1
101113#endif
102114
103#if defined(__MACH__)
115#if defined(__APPLE__)
104116#define zig_darwin
105117#elif defined(__DragonFly__)
106118#define zig_dragonfly
107#define zig_bsd
108119#elif defined(__EMSCRIPTEN__)
109120#define zig_emscripten
110121#elif defined(__FreeBSD__)
111122#define zig_freebsd
112#define zig_bsd
113123#elif defined(__Fuchsia__)
114124#define zig_fuchsia
115125#elif defined(__HAIKU__)
116126#define zig_haiku
117127#elif defined(__gnu_hurd__)
118128#define zig_hurd
129#elif defined(__illumos__)
130#define zig_illumos
119131#elif defined(__linux__)
120132#define zig_linux
121133#elif defined(__NetBSD__)
122134#define zig_netbsd
123#define zig_bsd
124135#elif defined(__OpenBSD__)
125136#define zig_openbsd
126#define zig_bsd
127#elif defined(__SVR4)
128#define zig_solaris
137#elif defined(__serenity__)
138#define zig_serenity
129139#elif defined(__wasi__)
130140#define zig_wasi
131141#elif defined(_WIN32)
......@@ -404,14 +414,22 @@
404414#define zig_trap() __asm__ volatile("udf #0xfe")
405415#elif defined(zig_arm) || defined(zig_aarch64)
406416#define zig_trap() __asm__ volatile("udf #0xfdee")
417#elif defined(zig_arc)
418#define zig_trap() __asm__ volatile("unimp_s")
419#elif defined(zig_csky)
420#define zig_trap() __asm__ volatile(".word 0x3fff")
407421#elif defined(zig_hexagon)
408422#define zig_trap() __asm__ volatile("r27:26 = memd(#0xbadc0fee)")
423#elif defined(zig_hppa)
424#define zig_trap() __asm__ volatile("iitlbp %r0, (%sr0, %r0)")
409425#elif defined(zig_kvx) || defined(zig_loongarch) || defined(zig_powerpc)
410426#define zig_trap() __asm__ volatile(".word 0x0")
411427#elif defined(zig_m68k)
412428#define zig_trap() __asm__ volatile("illegal")
413429#elif defined(zig_m88k)
414430#define zig_trap() __asm__ volatile("tb0 0, %%r0, 511")
431#elif defined(zig_microblaze)
432#define zig_trap() __asm__ volatile("getd r0, r0")
415433#elif defined(zig_mips)
416434#define zig_trap() __asm__ volatile(".word 0x3d")
417435#elif defined(zig_or1k)
......@@ -420,6 +438,8 @@
420438#define zig_trap() __asm__ volatile("unimp")
421439#elif defined(zig_s390x)
422440#define zig_trap() __asm__ volatile("j 0x2")
441#elif defined(zig_sh)
442#define zig_trap() __asm__ volatile(".word 0x0001")
423443#elif defined(zig_sparc)
424444#define zig_trap() __asm__ volatile("illtrap")
425445#elif defined(zig_x86_16)
......@@ -446,16 +466,22 @@
446466
447467#if defined(zig_alpha)
448468#define zig_breakpoint() __asm__ volatile("call_pal 0x000080")
449#elif defined(zig_arm)
469#elif defined(zig_arm) || defined(zig_csky)
450470#define zig_breakpoint() __asm__ volatile("bkpt #0x0")
451471#elif defined(zig_aarch64)
452472#define zig_breakpoint() __asm__ volatile("brk #0xf000")
473#elif defined(zig_arc)
474#define zig_breakpoint() __asm__ volatile("brk_s")
453475#elif defined(zig_hexagon)
454476#define zig_breakpoint() __asm__ volatile("brkpt")
477#elif defined(zig_hppa)
478#define zig_breakpoint() __asm__ volatile("break 0x04, 0x0008")
455479#elif defined(zig_kvx) || defined(zig_loongarch)
456480#define zig_breakpoint() __asm__ volatile("break 0x0")
457481#elif defined(zig_m88k)
458482#define zig_breakpoint() __asm__ volatile("illop1")
483#elif defined(zig_microblaze)
484#define zig_breakpoint() __asm__ volatile("brki r16, 0x0018")
459485#elif defined(zig_mips)
460486#define zig_breakpoint() __asm__ volatile("break")
461487#elif defined(zig_or1k)
......@@ -466,6 +492,8 @@
466492#define zig_breakpoint() __asm__ volatile("ebreak")
467493#elif defined(zig_s390x)
468494#define zig_breakpoint() __asm__ volatile("j 0x6")
495#elif defined(zig_sh)
496#define zig_breakpoint() __asm__ volatile("trapa #0xc3")
469497#elif defined(zig_sparc)
470498#define zig_breakpoint() __asm__ volatile("ta 0x1")
471499#elif defined(zig_x86)
src/Compilation.zig+2
......@@ -6342,6 +6342,8 @@ fn addCommonCCArgs(
63426342 // LLVM doesn't distinguish between Solaris and illumos, but the illumos GCC fork
63436343 // defines this macro.
63446344 .illumos => try argv.append("__illumos__"),
6345 // This macro has not yet been upstreamed by SerenityOS to Clang.
6346 .serenity => try argv.append("__serenity__"),
63456347 // Homebrew targets without LLVM support; use communities's preferred macros.
63466348 .@"3ds" => try argv.append("-D__3DS__"),
63476349 .psp => try argv.append("-D__PSP__"),