| ... | @@ -2178,6 +2178,7 @@ pub const TargetQuery = struct { | ... | @@ -2178,6 +2178,7 @@ pub const TargetQuery = struct { |
| 2178 | }; | 2178 | }; |
| 2179 | } | 2179 | } |
| 2180 | }; | 2180 | }; |
| | 2181 | |
| 2181 | pub const Abi = enum(u5) { | 2182 | pub const Abi = enum(u5) { |
| 2182 | none, | 2183 | none, |
| 2183 | gnu, | 2184 | gnu, |
| ... | @@ -2210,16 +2211,71 @@ pub const TargetQuery = struct { | ... | @@ -2210,16 +2211,71 @@ pub const TargetQuery = struct { |
| 2210 | default, | 2211 | default, |
| 2211 | | 2212 | |
| 2212 | pub fn init(x: ?std.Target.Abi) @This() { | 2213 | pub fn init(x: ?std.Target.Abi) @This() { |
| 2213 | // TODO comptime assert the enums match | 2214 | return switch (x orelse return .default) { |
| 2214 | return @enumFromInt(@intFromEnum(x orelse return .default)); | 2215 | .none => .none, |
| | 2216 | .gnu => .gnu, |
| | 2217 | .gnuabin32 => .gnuabin32, |
| | 2218 | .gnuabi64 => .gnuabi64, |
| | 2219 | .gnueabi => .gnueabi, |
| | 2220 | .gnueabihf => .gnueabihf, |
| | 2221 | .gnuf32 => .gnuf32, |
| | 2222 | .gnusf => .gnusf, |
| | 2223 | .gnux32 => .gnux32, |
| | 2224 | .eabi => .eabi, |
| | 2225 | .eabihf => .eabihf, |
| | 2226 | .ilp32 => .ilp32, |
| | 2227 | .android => .android, |
| | 2228 | .androideabi => .androideabi, |
| | 2229 | .musl => .musl, |
| | 2230 | .muslabin32 => .muslabin32, |
| | 2231 | .muslabi64 => .muslabi64, |
| | 2232 | .musleabi => .musleabi, |
| | 2233 | .musleabihf => .musleabihf, |
| | 2234 | .muslf32 => .muslf32, |
| | 2235 | .muslsf => .muslsf, |
| | 2236 | .muslx32 => .muslx32, |
| | 2237 | .msvc => .msvc, |
| | 2238 | .itanium => .itanium, |
| | 2239 | .simulator => .simulator, |
| | 2240 | .ohos => .ohos, |
| | 2241 | .ohoseabi => .ohoseabi, |
| | 2242 | }; |
| 2215 | } | 2243 | } |
| 2216 | | 2244 | |
| 2217 | pub fn unwrap(this: @This()) ?std.Target.Abi { | 2245 | pub fn unwrap(this: @This()) ?std.Target.Abi { |
| 2218 | // TODO comptime assert the enums match | 2246 | return switch (this) { |
| 2219 | if (this == .default) return null; | 2247 | .none => .none, |
| 2220 | return @enumFromInt(@intFromEnum(this)); | 2248 | .gnu => .gnu, |
| | 2249 | .gnuabin32 => .gnuabin32, |
| | 2250 | .gnuabi64 => .gnuabi64, |
| | 2251 | .gnueabi => .gnueabi, |
| | 2252 | .gnueabihf => .gnueabihf, |
| | 2253 | .gnuf32 => .gnuf32, |
| | 2254 | .gnusf => .gnusf, |
| | 2255 | .gnux32 => .gnux32, |
| | 2256 | .eabi => .eabi, |
| | 2257 | .eabihf => .eabihf, |
| | 2258 | .ilp32 => .ilp32, |
| | 2259 | .android => .android, |
| | 2260 | .androideabi => .androideabi, |
| | 2261 | .musl => .musl, |
| | 2262 | .muslabin32 => .muslabin32, |
| | 2263 | .muslabi64 => .muslabi64, |
| | 2264 | .musleabi => .musleabi, |
| | 2265 | .musleabihf => .musleabihf, |
| | 2266 | .muslf32 => .muslf32, |
| | 2267 | .muslsf => .muslsf, |
| | 2268 | .muslx32 => .muslx32, |
| | 2269 | .msvc => .msvc, |
| | 2270 | .itanium => .itanium, |
| | 2271 | .simulator => .simulator, |
| | 2272 | .ohos => .ohos, |
| | 2273 | .ohoseabi => .ohoseabi, |
| | 2274 | .default => null, |
| | 2275 | }; |
| 2221 | } | 2276 | } |
| 2222 | }; | 2277 | }; |
| | 2278 | |
| 2223 | pub const CpuArch = enum(u6) { | 2279 | pub const CpuArch = enum(u6) { |
| 2224 | aarch64, | 2280 | aarch64, |
| 2225 | aarch64_be, | 2281 | aarch64_be, |
| ... | @@ -2233,6 +2289,7 @@ pub const TargetQuery = struct { | ... | @@ -2233,6 +2289,7 @@ pub const TargetQuery = struct { |
| 2233 | bpfeb, | 2289 | bpfeb, |
| 2234 | bpfel, | 2290 | bpfel, |
| 2235 | csky, | 2291 | csky, |
| | 2292 | ez80, |
| 2236 | hexagon, | 2293 | hexagon, |
| 2237 | hppa, | 2294 | hppa, |
| 2238 | hppa64, | 2295 | hppa64, |
| ... | @@ -2283,16 +2340,136 @@ pub const TargetQuery = struct { | ... | @@ -2283,16 +2340,136 @@ pub const TargetQuery = struct { |
| 2283 | default, | 2340 | default, |
| 2284 | | 2341 | |
| 2285 | pub fn init(x: ?std.Target.Cpu.Arch) @This() { | 2342 | pub fn init(x: ?std.Target.Cpu.Arch) @This() { |
| 2286 | // TODO comptime assert the enums match | 2343 | return switch (x orelse return .default) { |
| 2287 | return @enumFromInt(@intFromEnum(x orelse return .default)); | 2344 | .aarch64 => .aarch64, |
| | 2345 | .aarch64_be => .aarch64_be, |
| | 2346 | .alpha => .alpha, |
| | 2347 | .amdgcn => .amdgcn, |
| | 2348 | .arc => .arc, |
| | 2349 | .arceb => .arceb, |
| | 2350 | .arm => .arm, |
| | 2351 | .armeb => .armeb, |
| | 2352 | .avr => .avr, |
| | 2353 | .bpfeb => .bpfeb, |
| | 2354 | .bpfel => .bpfel, |
| | 2355 | .csky => .csky, |
| | 2356 | .ez80 => .ez80, |
| | 2357 | .hexagon => .hexagon, |
| | 2358 | .hppa => .hppa, |
| | 2359 | .hppa64 => .hppa64, |
| | 2360 | .kalimba => .kalimba, |
| | 2361 | .kvx => .kvx, |
| | 2362 | .lanai => .lanai, |
| | 2363 | .loongarch32 => .loongarch32, |
| | 2364 | .loongarch64 => .loongarch64, |
| | 2365 | .m68k => .m68k, |
| | 2366 | .microblaze => .microblaze, |
| | 2367 | .microblazeel => .microblazeel, |
| | 2368 | .mips => .mips, |
| | 2369 | .mipsel => .mipsel, |
| | 2370 | .mips64 => .mips64, |
| | 2371 | .mips64el => .mips64el, |
| | 2372 | .msp430 => .msp430, |
| | 2373 | .nvptx => .nvptx, |
| | 2374 | .nvptx64 => .nvptx64, |
| | 2375 | .or1k => .or1k, |
| | 2376 | .powerpc => .powerpc, |
| | 2377 | .powerpcle => .powerpcle, |
| | 2378 | .powerpc64 => .powerpc64, |
| | 2379 | .powerpc64le => .powerpc64le, |
| | 2380 | .propeller => .propeller, |
| | 2381 | .riscv32 => .riscv32, |
| | 2382 | .riscv32be => .riscv32be, |
| | 2383 | .riscv64 => .riscv64, |
| | 2384 | .riscv64be => .riscv64be, |
| | 2385 | .s390x => .s390x, |
| | 2386 | .sh => .sh, |
| | 2387 | .sheb => .sheb, |
| | 2388 | .sparc => .sparc, |
| | 2389 | .sparc64 => .sparc64, |
| | 2390 | .spirv32 => .spirv32, |
| | 2391 | .spirv64 => .spirv64, |
| | 2392 | .thumb => .thumb, |
| | 2393 | .thumbeb => .thumbeb, |
| | 2394 | .ve => .ve, |
| | 2395 | .wasm32 => .wasm32, |
| | 2396 | .wasm64 => .wasm64, |
| | 2397 | .x86_16 => .x86_16, |
| | 2398 | .x86 => .x86, |
| | 2399 | .x86_64 => .x86_64, |
| | 2400 | .xcore => .xcore, |
| | 2401 | .xtensa => .xtensa, |
| | 2402 | .xtensaeb => .xtensaeb, |
| | 2403 | }; |
| 2288 | } | 2404 | } |
| 2289 | | 2405 | |
| 2290 | pub fn unwrap(this: @This()) ?std.Target.Cpu.Arch { | 2406 | pub fn unwrap(this: @This()) ?std.Target.Cpu.Arch { |
| 2291 | // TODO comptime assert the enums match | 2407 | return switch (this) { |
| 2292 | if (this == .default) return null; | 2408 | .aarch64 => .aarch64, |
| 2293 | return @enumFromInt(@intFromEnum(this)); | 2409 | .aarch64_be => .aarch64_be, |
| | 2410 | .alpha => .alpha, |
| | 2411 | .amdgcn => .amdgcn, |
| | 2412 | .arc => .arc, |
| | 2413 | .arceb => .arceb, |
| | 2414 | .arm => .arm, |
| | 2415 | .armeb => .armeb, |
| | 2416 | .avr => .avr, |
| | 2417 | .bpfeb => .bpfeb, |
| | 2418 | .bpfel => .bpfel, |
| | 2419 | .csky => .csky, |
| | 2420 | .ez80 => .ez80, |
| | 2421 | .hexagon => .hexagon, |
| | 2422 | .hppa => .hppa, |
| | 2423 | .hppa64 => .hppa64, |
| | 2424 | .kalimba => .kalimba, |
| | 2425 | .kvx => .kvx, |
| | 2426 | .lanai => .lanai, |
| | 2427 | .loongarch32 => .loongarch32, |
| | 2428 | .loongarch64 => .loongarch64, |
| | 2429 | .m68k => .m68k, |
| | 2430 | .microblaze => .microblaze, |
| | 2431 | .microblazeel => .microblazeel, |
| | 2432 | .mips => .mips, |
| | 2433 | .mipsel => .mipsel, |
| | 2434 | .mips64 => .mips64, |
| | 2435 | .mips64el => .mips64el, |
| | 2436 | .msp430 => .msp430, |
| | 2437 | .nvptx => .nvptx, |
| | 2438 | .nvptx64 => .nvptx64, |
| | 2439 | .or1k => .or1k, |
| | 2440 | .powerpc => .powerpc, |
| | 2441 | .powerpcle => .powerpcle, |
| | 2442 | .powerpc64 => .powerpc64, |
| | 2443 | .powerpc64le => .powerpc64le, |
| | 2444 | .propeller => .propeller, |
| | 2445 | .riscv32 => .riscv32, |
| | 2446 | .riscv32be => .riscv32be, |
| | 2447 | .riscv64 => .riscv64, |
| | 2448 | .riscv64be => .riscv64be, |
| | 2449 | .s390x => .s390x, |
| | 2450 | .sh => .sh, |
| | 2451 | .sheb => .sheb, |
| | 2452 | .sparc => .sparc, |
| | 2453 | .sparc64 => .sparc64, |
| | 2454 | .spirv32 => .spirv32, |
| | 2455 | .spirv64 => .spirv64, |
| | 2456 | .thumb => .thumb, |
| | 2457 | .thumbeb => .thumbeb, |
| | 2458 | .ve => .ve, |
| | 2459 | .wasm32 => .wasm32, |
| | 2460 | .wasm64 => .wasm64, |
| | 2461 | .x86_16 => .x86_16, |
| | 2462 | .x86 => .x86, |
| | 2463 | .x86_64 => .x86_64, |
| | 2464 | .xcore => .xcore, |
| | 2465 | .xtensa => .xtensa, |
| | 2466 | .xtensaeb => .xtensaeb, |
| | 2467 | |
| | 2468 | .default => null, |
| | 2469 | }; |
| 2294 | } | 2470 | } |
| 2295 | }; | 2471 | }; |
| | 2472 | |
| 2296 | pub const OsTag = enum(u6) { | 2473 | pub const OsTag = enum(u6) { |
| 2297 | freestanding, | 2474 | freestanding, |
| 2298 | other, | 2475 | other, |
| ... | @@ -2390,7 +2567,6 @@ pub const TargetQuery = struct { | ... | @@ -2390,7 +2567,6 @@ pub const TargetQuery = struct { |
| 2390 | | 2567 | |
| 2391 | pub fn unwrap(this: @This()) ?std.Target.Os.Tag { | 2568 | pub fn unwrap(this: @This()) ?std.Target.Os.Tag { |
| 2392 | return switch (this) { | 2569 | return switch (this) { |
| 2393 | .default => null, | | |
| 2394 | .freestanding => .freestanding, | 2570 | .freestanding => .freestanding, |
| 2395 | .other => .other, | 2571 | .other => .other, |
| 2396 | .contiki => .contiki, | 2572 | .contiki => .contiki, |
| ... | @@ -2434,6 +2610,8 @@ pub const TargetQuery = struct { | ... | @@ -2434,6 +2610,8 @@ pub const TargetQuery = struct { |
| 2434 | .opengl => .opengl, | 2610 | .opengl => .opengl, |
| 2435 | .vulkan => .vulkan, | 2611 | .vulkan => .vulkan, |
| 2436 | .tios => .tios, | 2612 | .tios => .tios, |
| | 2613 | |
| | 2614 | .default => null, |
| 2437 | }; | 2615 | }; |
| 2438 | } | 2616 | } |
| 2439 | }; | 2617 | }; |