| ... | ... | @@ -3374,3 +3374,35 @@ pub const loongarch = struct { |
| 3374 | 3374 | pub const AbiExtension = enum(u3) { base = 0, _ }; |
| 3375 | 3375 | }; |
| 3376 | 3376 | }; |
| 3377 | |
| 3378 | pub const sparc = struct { |
| 3379 | pub const EFlags = packed struct(Word) { |
| 3380 | mm: MemoryModel, |
| 3381 | _reserved1: u6 = 0, |
| 3382 | ext: Extensions, |
| 3383 | _reserved2: u8 = 0, |
| 3384 | |
| 3385 | pub const MemoryModel = enum(u2) { |
| 3386 | /// Total Store Ordering |
| 3387 | tso = 0, |
| 3388 | /// Partial Store Ordering |
| 3389 | pso = 1, |
| 3390 | /// Relaxed Memory Ordering |
| 3391 | rmo = 2, |
| 3392 | }; |
| 3393 | |
| 3394 | pub const Extensions = packed struct(u16) { |
| 3395 | /// Uses SPARC v8 ABI (w/ 32-bit pointers) on SPARC v9. Also known as v8+. |
| 3396 | @"32plus": bool, |
| 3397 | /// Uses Sun UltraSPARC extensions. |
| 3398 | sun_us1: bool, |
| 3399 | /// Uses HaL R1 extensions. |
| 3400 | hal_r1: bool, |
| 3401 | /// Uses Sun UltraSPARC III extensions. |
| 3402 | sun_us3: bool, |
| 3403 | _reserved: u11 = 0, |
| 3404 | /// Uses little endian data (SPARC v9+). |
| 3405 | le_data: bool, |
| 3406 | }; |
| 3407 | }; |
| 3408 | }; |