From 58fb6115896eddb5f1c86e5e812cdde819fcdf20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 4 Jul 2026 10:28:34 +0200 Subject: [PATCH] std.elf: add sparc.EFlags --- lib/std/elf.zig | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/lib/std/elf.zig b/lib/std/elf.zig index 6309fe5a12c8426a95fc135d26a48ccfe9979f17..a22c3f4c29c674c8830299b799dd89e03933e56a 100644 --- a/lib/std/elf.zig +++ b/lib/std/elf.zig @@ -3374,3 +3374,35 @@ pub const loongarch = struct { pub const AbiExtension = enum(u3) { base = 0, _ }; }; }; + +pub const sparc = struct { + pub const EFlags = packed struct(Word) { + mm: MemoryModel, + _reserved1: u6 = 0, + ext: Extensions, + _reserved2: u8 = 0, + + pub const MemoryModel = enum(u2) { + /// Total Store Ordering + tso = 0, + /// Partial Store Ordering + pso = 1, + /// Relaxed Memory Ordering + rmo = 2, + }; + + pub const Extensions = packed struct(u16) { + /// Uses SPARC v8 ABI (w/ 32-bit pointers) on SPARC v9. Also known as v8+. + @"32plus": bool, + /// Uses Sun UltraSPARC extensions. + sun_us1: bool, + /// Uses HaL R1 extensions. + hal_r1: bool, + /// Uses Sun UltraSPARC III extensions. + sun_us3: bool, + _reserved: u11 = 0, + /// Uses little endian data (SPARC v9+). + le_data: bool, + }; + }; +}; -- 2.54.0