std.c: Fill out some missing definitions for supported NetBSD libc targets.

This allows ubsan-rt to build.
This commit is contained in:
Alex Rønne Petersen 2025-05-16 22:35:35 +02:00
parent d47cc5777d
commit 9af8e7c68e
No known key found for this signature in database

View File

@ -1840,16 +1840,37 @@ pub const REG = switch (native_os) {
pub const RSP = 20;
},
.netbsd => switch (builtin.cpu.arch) {
.aarch64 => struct {
.aarch64, .aarch64_be => struct {
pub const FP = 29;
pub const SP = 31;
pub const PC = 32;
},
.arm => struct {
.arm, .armeb => struct {
pub const FP = 11;
pub const SP = 13;
pub const PC = 15;
},
.x86 => struct {
pub const GS = 0;
pub const FS = 1;
pub const ES = 2;
pub const DS = 3;
pub const EDI = 4;
pub const ESI = 5;
pub const EBP = 6;
pub const ESP = 7;
pub const EBX = 8;
pub const EDX = 9;
pub const ECX = 10;
pub const EAX = 11;
pub const TRAPNO = 12;
pub const ERR = 13;
pub const EIP = 14;
pub const CS = 15;
pub const EFL = 16;
pub const UESP = 17;
pub const SS = 18;
},
.x86_64 => struct {
pub const RDI = 0;
pub const RSI = 1;
@ -6806,11 +6827,16 @@ pub const mcontext_t = switch (native_os) {
fpregs: solaris.fpregset_t,
},
.netbsd => switch (builtin.cpu.arch) {
.aarch64 => extern struct {
.aarch64, .aarch64_be => extern struct {
gregs: [35]u64,
fregs: [528]u8 align(16),
spare: [8]u64,
},
.x86 => extern struct {
gregs: [19]u32,
fpregs: [161]u32,
mc_tlsbase: u32,
},
.x86_64 => extern struct {
gregs: [26]u64,
mc_tlsbase: u64,