enum ARCH [src]
Fields
AARCH64 = toAudit(.AARCH64, @"64BIT" | LE)
ALPHA = toAudit(.ALPHA, @"64BIT" | LE)
ARCOMPACT = toAudit(.ARC_COMPACT, LE)
ARCOMPACTBE = toAudit(.ARC_COMPACT, 0)
ARCV2 = toAudit(.ARC_COMPACT2, LE)
ARCV2BE = toAudit(.ARC_COMPACT2, 0)
ARM = toAudit(.ARM, LE)
ARMEB = toAudit(.ARM, 0)
C6X = toAudit(.TI_C6000, LE)
C6XBE = toAudit(.TI_C6000, 0)
CRIS = toAudit(.CRIS, LE)
CSKY = toAudit(.CSKY, LE)
FRV = toAudit(.FRV, 0)
H8300 = toAudit(.H8_300, 0)
HEXAGON = toAudit(.HEXAGON, 0)
I386 = toAudit(.@"386", LE)
IA64 = toAudit(.IA_64, @"64BIT" | LE)
M32R = toAudit(.M32R, 0)
M68K = toAudit(.@"68K", 0)
MICROBLAZE = toAudit(.MICROBLAZE, 0)
MIPS = toAudit(.MIPS, 0)
MIPSEL = toAudit(.MIPS, LE)
MIPS64 = toAudit(.MIPS, @"64BIT")
MIPS64N32 = toAudit(.MIPS, @"64BIT" | CONVENTION_MIPS64_N32)
MIPSEL64 = toAudit(.MIPS, @"64BIT" | LE)
MIPSEL64N32 = toAudit(.MIPS, @"64BIT" | LE | CONVENTION_MIPS64_N32)
NDS32 = toAudit(.NDS32, LE)
NDS32BE = toAudit(.NDS32, 0)
NIOS2 = toAudit(.ALTERA_NIOS2, LE)
OPENRISC = toAudit(.OPENRISC, 0)
PARISC = toAudit(.PARISC, 0)
PARISC64 = toAudit(.PARISC, @"64BIT")
PPC = toAudit(.PPC, 0)
PPC64 = toAudit(.PPC64, @"64BIT")
PPC64LE = toAudit(.PPC64, @"64BIT" | LE)
RISCV32 = toAudit(.RISCV, LE)
RISCV64 = toAudit(.RISCV, @"64BIT" | LE)
S390 = toAudit(.S390, 0)
S390X = toAudit(.S390, @"64BIT")
SH = toAudit(.SH, 0)
SHEL = toAudit(.SH, LE)
SH64 = toAudit(.SH, @"64BIT")
SHEL64 = toAudit(.SH, @"64BIT" | LE)
SPARC = toAudit(.SPARC, 0)
SPARC64 = toAudit(.SPARCV9, @"64BIT")
TILEGX = toAudit(.TILEGX, @"64BIT" | LE)
TILEGX32 = toAudit(.TILEGX, LE)
TILEPRO = toAudit(.TILEPRO, LE)
UNICORE = toAudit(.UNICORE, LE)
X86_64 = toAudit(.X86_64, @"64BIT" | LE)
XTENSA = toAudit(.XTENSA, 0)
LOONGARCH32 = toAudit(.LOONGARCH, LE)
LOONGARCH64 = toAudit(.LOONGARCH, @"64BIT" | LE)
Members
- current (Constant)
Source
pub const ARCH = enum(u32) {
const CONVENTION_MIPS64_N32 = 0x20000000;
const @"64BIT" = 0x80000000;
const LE = 0x40000000;
AARCH64 = toAudit(.AARCH64, @"64BIT" | LE),
ALPHA = toAudit(.ALPHA, @"64BIT" | LE),
ARCOMPACT = toAudit(.ARC_COMPACT, LE),
ARCOMPACTBE = toAudit(.ARC_COMPACT, 0),
ARCV2 = toAudit(.ARC_COMPACT2, LE),
ARCV2BE = toAudit(.ARC_COMPACT2, 0),
ARM = toAudit(.ARM, LE),
ARMEB = toAudit(.ARM, 0),
C6X = toAudit(.TI_C6000, LE),
C6XBE = toAudit(.TI_C6000, 0),
CRIS = toAudit(.CRIS, LE),
CSKY = toAudit(.CSKY, LE),
FRV = toAudit(.FRV, 0),
H8300 = toAudit(.H8_300, 0),
HEXAGON = toAudit(.HEXAGON, 0),
I386 = toAudit(.@"386", LE),
IA64 = toAudit(.IA_64, @"64BIT" | LE),
M32R = toAudit(.M32R, 0),
M68K = toAudit(.@"68K", 0),
MICROBLAZE = toAudit(.MICROBLAZE, 0),
MIPS = toAudit(.MIPS, 0),
MIPSEL = toAudit(.MIPS, LE),
MIPS64 = toAudit(.MIPS, @"64BIT"),
MIPS64N32 = toAudit(.MIPS, @"64BIT" | CONVENTION_MIPS64_N32),
MIPSEL64 = toAudit(.MIPS, @"64BIT" | LE),
MIPSEL64N32 = toAudit(.MIPS, @"64BIT" | LE | CONVENTION_MIPS64_N32),
NDS32 = toAudit(.NDS32, LE),
NDS32BE = toAudit(.NDS32, 0),
NIOS2 = toAudit(.ALTERA_NIOS2, LE),
OPENRISC = toAudit(.OPENRISC, 0),
PARISC = toAudit(.PARISC, 0),
PARISC64 = toAudit(.PARISC, @"64BIT"),
PPC = toAudit(.PPC, 0),
PPC64 = toAudit(.PPC64, @"64BIT"),
PPC64LE = toAudit(.PPC64, @"64BIT" | LE),
RISCV32 = toAudit(.RISCV, LE),
RISCV64 = toAudit(.RISCV, @"64BIT" | LE),
S390 = toAudit(.S390, 0),
S390X = toAudit(.S390, @"64BIT"),
SH = toAudit(.SH, 0),
SHEL = toAudit(.SH, LE),
SH64 = toAudit(.SH, @"64BIT"),
SHEL64 = toAudit(.SH, @"64BIT" | LE),
SPARC = toAudit(.SPARC, 0),
SPARC64 = toAudit(.SPARCV9, @"64BIT"),
TILEGX = toAudit(.TILEGX, @"64BIT" | LE),
TILEGX32 = toAudit(.TILEGX, LE),
TILEPRO = toAudit(.TILEPRO, LE),
UNICORE = toAudit(.UNICORE, LE),
X86_64 = toAudit(.X86_64, @"64BIT" | LE),
XTENSA = toAudit(.XTENSA, 0),
LOONGARCH32 = toAudit(.LOONGARCH, LE),
LOONGARCH64 = toAudit(.LOONGARCH, @"64BIT" | LE),
fn toAudit(em: elf.EM, flags: u32) u32 {
return @intFromEnum(em) | flags;
}
pub const current: AUDIT.ARCH = switch (native_arch) {
.arm, .thumb => .ARM,
.armeb, .thumbeb => .ARMEB,
.aarch64 => .AARCH64,
.arc => .ARCV2,
.csky => .CSKY,
.hexagon => .HEXAGON,
.loongarch32 => .LOONGARCH32,
.loongarch64 => .LOONGARCH64,
.m68k => .M68K,
.mips => .MIPS,
.mipsel => .MIPSEL,
.mips64 => switch (native_abi) {
.gnuabin32, .muslabin32 => .MIPS64N32,
else => .MIPS64,
},
.mips64el => switch (native_abi) {
.gnuabin32, .muslabin32 => .MIPSEL64N32,
else => .MIPSEL64,
},
.powerpc => .PPC,
.powerpc64 => .PPC64,
.powerpc64le => .PPC64LE,
.riscv32 => .RISCV32,
.riscv64 => .RISCV64,
.sparc => .SPARC,
.sparc64 => .SPARC64,
.s390x => .S390X,
.x86 => .I386,
.x86_64 => .X86_64,
.xtensa => .XTENSA,
else => @compileError("unsupported architecture"),
};
}