authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-05-23 10:59:27+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-05-23 11:02:55+02:00
log07262bddd67e8c3bbf87cc2d335c07aae40e52bf
treecd14ab3fe3be355452b82676c2d7368fa704d1ce
parenta439978f055ab40ff51314df329c084b6817318f
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std: add basic target information for m88k-openbsd

closes https://codeberg.org/ziglang/zig/issues/31816

7 files changed, 97 insertions(+), 0 deletions(-)

lib/std/Target.zig+16
......@@ -751,6 +751,7 @@ pub const kvx = @import("Target/kvx.zig");
751751pub const lanai = @import("Target/lanai.zig");
752752pub const loongarch = @import("Target/loongarch.zig");
753753pub const m68k = @import("Target/m68k.zig");
754pub const m88k = @import("Target/generic.zig");
754755pub const microblaze = @import("Target/generic.zig");
755756pub const mips = @import("Target/mips.zig");
756757pub const msp430 = @import("Target/msp430.zig");
......@@ -1091,6 +1092,7 @@ pub fn toElfMachine(target: *const Target) std.elf.EM {
10911092 .kvx => .KVX,
10921093 .lanai => .LANAI,
10931094 .loongarch32, .loongarch64 => .LOONGARCH,
1095 .m88k => .@"88K",
10941096 .m68k => .@"68K",
10951097 .microblaze, .microblazeel => .MICROBLAZE,
10961098 .mips, .mips64, .mipsel, .mips64el => .MIPS,
......@@ -1154,6 +1156,7 @@ pub fn toCoffMachine(target: *const Target) std.coff.IMAGE.FILE.MACHINE {
11541156 .kalimba,
11551157 .kvx,
11561158 .lanai,
1159 .m88k,
11571160 .m68k,
11581161 .microblaze,
11591162 .microblazeel,
......@@ -1364,6 +1367,7 @@ pub const Cpu = struct {
13641367 loongarch32,
13651368 loongarch64,
13661369 m68k,
1370 m88k,
13671371 microblaze,
13681372 microblazeel,
13691373 mips,
......@@ -1439,6 +1443,7 @@ pub const Cpu = struct {
14391443 lanai,
14401444 loongarch,
14411445 m68k,
1446 m88k,
14421447 microblaze,
14431448 mips,
14441449 msp430,
......@@ -1477,6 +1482,7 @@ pub const Cpu = struct {
14771482 .lanai => .lanai,
14781483 .loongarch32, .loongarch64 => .loongarch,
14791484 .m68k => .m68k,
1485 .m88k => .m88k,
14801486 .microblaze, .microblazeel => .microblaze,
14811487 .mips, .mipsel, .mips64, .mips64el => .mips,
14821488 .msp430 => .msp430,
......@@ -1710,6 +1716,7 @@ pub const Cpu = struct {
17101716 .hppa64,
17111717 .lanai,
17121718 .m68k,
1719 .m88k,
17131720 .microblaze,
17141721 .mips,
17151722 .mips64,
......@@ -1922,6 +1929,9 @@ pub const Cpu = struct {
19221929 .m68k_interrupt,
19231930 => &.{.m68k},
19241931
1932 .m88k_sysv,
1933 => &.{.m88k},
1934
19251935 .microblaze_std,
19261936 .microblaze_interrupt,
19271937 => &.{ .microblaze, .microblazeel },
......@@ -2803,6 +2813,7 @@ pub const DynamicLinker = struct {
28032813 .arm,
28042814 .aarch64,
28052815 .hppa,
2816 .m88k,
28062817 .mips64,
28072818 .mips64el,
28082819 .powerpc,
......@@ -2910,6 +2921,7 @@ pub fn ptrBitWidth_arch_abi(cpu_arch: Cpu.Arch, abi: Abi) u16 {
29102921 .lanai,
29112922 .loongarch32,
29122923 .m68k,
2924 .m88k,
29132925 .microblaze,
29142926 .microblazeel,
29152927 .mips,
......@@ -3495,6 +3507,7 @@ pub fn cTypeAlignment(target: *const Target, c_type: CType) u16 {
34953507 .hppa,
34963508 .lanai,
34973509 .m68k,
3510 .m88k,
34983511 .mips,
34993512 .mipsel,
35003513 .nvptx,
......@@ -3604,6 +3617,7 @@ pub fn cTypePreferredAlignment(target: *const Target, c_type: CType) u16 {
36043617 .hppa,
36053618 .lanai,
36063619 .m68k,
3620 .m88k,
36073621 .mips,
36083622 .mipsel,
36093623 .nvptx,
......@@ -3675,6 +3689,7 @@ pub fn cMaxIntAlignment(target: *const Target) u16 {
36753689 .lanai,
36763690 .loongarch32,
36773691 .m68k,
3692 .m88k,
36783693 .mips,
36793694 .mipsel,
36803695 .powerpc,
......@@ -3775,6 +3790,7 @@ pub fn cCallingConvention(target: *const Target) ?std.builtin.CallingConvention
37753790 .loongarch64 => .{ .loongarch64_lp64 = .{} },
37763791 .loongarch32 => .{ .loongarch32_ilp32 = .{} },
37773792 .m68k => .{ .m68k_gnu = .{} },
3793 .m88k => .{ .m88k_sysv = .{} },
37783794 .microblaze, .microblazeel => .{ .microblaze_std = .{} },
37793795 .msp430 => .{ .msp430_eabi = .{} },
37803796 .or1k => .{ .or1k_sysv = .{} },
lib/std/heap.zig+2
......@@ -608,6 +608,7 @@ const page_size_min_default: ?usize = switch (builtin.os.tag) {
608608 .hppa => 4 << 10,
609609 .x86, .x86_64 => 4 << 10,
610610 .thumb, .thumbeb, .arm, .armeb, .aarch64, .aarch64_be => 4 << 10,
611 .m88k => 4 << 10,
611612 .mips64, .mips64el => 4 << 10,
612613 .powerpc, .powerpc64, .powerpc64le, .powerpcle => 4 << 10,
613614 .riscv64 => 4 << 10,
......@@ -771,6 +772,7 @@ const page_size_max_default: ?usize = switch (builtin.os.tag) {
771772 .hppa => 4 << 10,
772773 .x86, .x86_64 => 4 << 10,
773774 .thumb, .thumbeb, .arm, .armeb, .aarch64, .aarch64_be => 4 << 10,
775 .m88k => 4 << 10,
774776 .mips64, .mips64el => 16 << 10,
775777 .powerpc, .powerpc64, .powerpc64le, .powerpcle => 4 << 10,
776778 .riscv64 => 4 << 10,
lib/std/lang.zig+2
......@@ -292,6 +292,8 @@ pub const CallingConvention = union(enum(u8)) {
292292 m68k_rtd: CommonOptions,
293293 m68k_interrupt: CommonOptions,
294294
295 m88k_sysv: CommonOptions,
296
295297 /// The standard `microblaze`/`microblazeel` calling convention.
296298 microblaze_std: CommonOptions,
297299 microblaze_interrupt: MicroblazeInterruptOptions,
lib/std/lang/assembly.zig+71
......@@ -1553,6 +1553,77 @@ pub const Clobbers = switch (@import("builtin").cpu.arch) {
15531553 r14: bool = false,
15541554 r15: bool = false,
15551555 },
1556 .m88k => packed struct {
1557 /// Whether the inline assembly code may perform stores to memory
1558 /// addresses other than those derived from input pointer provenance.
1559 memory: bool = false,
1560
1561 r0: bool = false,
1562 r1: bool = false,
1563 r2: bool = false,
1564 r3: bool = false,
1565 r4: bool = false,
1566 r5: bool = false,
1567 r6: bool = false,
1568 r7: bool = false,
1569 r8: bool = false,
1570 r9: bool = false,
1571 r10: bool = false,
1572 r11: bool = false,
1573 r12: bool = false,
1574 r13: bool = false,
1575 r14: bool = false,
1576 r15: bool = false,
1577 r16: bool = false,
1578 r17: bool = false,
1579 r18: bool = false,
1580 r19: bool = false,
1581 r20: bool = false,
1582 r21: bool = false,
1583 r22: bool = false,
1584 r23: bool = false,
1585 r24: bool = false,
1586 r25: bool = false,
1587 r26: bool = false,
1588 r27: bool = false,
1589 r28: bool = false,
1590 r29: bool = false,
1591 r30: bool = false,
1592 r31: bool = false,
1593
1594 x0: bool = false,
1595 x1: bool = false,
1596 x2: bool = false,
1597 x3: bool = false,
1598 x4: bool = false,
1599 x5: bool = false,
1600 x6: bool = false,
1601 x7: bool = false,
1602 x8: bool = false,
1603 x9: bool = false,
1604 x10: bool = false,
1605 x11: bool = false,
1606 x12: bool = false,
1607 x13: bool = false,
1608 x14: bool = false,
1609 x15: bool = false,
1610 x16: bool = false,
1611 x17: bool = false,
1612 x18: bool = false,
1613 x19: bool = false,
1614 x20: bool = false,
1615 x21: bool = false,
1616 x22: bool = false,
1617 x23: bool = false,
1618 x24: bool = false,
1619 x25: bool = false,
1620 x26: bool = false,
1621 x27: bool = false,
1622 x28: bool = false,
1623 x29: bool = false,
1624 x30: bool = false,
1625 x31: bool = false,
1626 },
15561627 .m68k => packed struct {
15571628 /// Whether the inline assembly code may perform stores to memory
15581629 /// addresses other than those derived from input pointer provenance.
src/Sema.zig+1
......@@ -8558,6 +8558,7 @@ const calling_conventions_supporting_var_args = [_]std.lang.CallingConvention.Ta
85588558 .m68k_sysv,
85598559 .m68k_gnu,
85608560 .m68k_rtd,
8561 .m88k_sysv,
85618562 .msp430_eabi,
85628563 .or1k_sysv,
85638564 .s390x_sysv,
src/codegen/llvm.zig+4
......@@ -112,6 +112,7 @@ pub fn targetTriple(allocator: Allocator, target: *const std.Target) ![]const u8
112112 .hppa64,
113113 .kalimba,
114114 .kvx,
115 .m88k,
115116 .microblaze,
116117 .microblazeel,
117118 .or1k,
......@@ -478,6 +479,7 @@ pub fn dataLayout(target: *const std.Target) []const u8 {
478479 .hppa64,
479480 .kalimba,
480481 .kvx,
482 .m88k,
481483 .microblaze,
482484 .microblazeel,
483485 .or1k,
......@@ -4531,6 +4533,7 @@ pub fn toLlvmCallConvTag(cc_tag: std.lang.CallingConvention.Tag, target: *const
45314533 .loongarch32_ilp32,
45324534 .m68k_sysv,
45334535 .m68k_gnu,
4536 .m88k_sysv,
45344537 .msp430_eabi,
45354538 .or1k_sysv,
45364539 .propeller_sysv,
......@@ -4903,6 +4906,7 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void {
49034906 .hppa64,
49044907 .kalimba,
49054908 .kvx,
4909 .m88k,
49064910 .microblaze,
49074911 .microblazeel,
49084912 .or1k,
src/target.zig+1
......@@ -245,6 +245,7 @@ pub fn hasLlvmSupport(target: *const std.Target, ofmt: std.Target.ObjectFormat)
245245 .hppa64,
246246 .kalimba,
247247 .kvx,
248 .m88k,
248249 .microblaze,
249250 .microblazeel,
250251 .or1k,