| ... | ... | @@ -2178,6 +2178,7 @@ pub const TargetQuery = struct { |
| 2178 | 2178 | }; |
| 2179 | 2179 | } |
| 2180 | 2180 | }; |
| 2181 | |
| 2181 | 2182 | pub const Abi = enum(u5) { |
| 2182 | 2183 | none, |
| 2183 | 2184 | gnu, |
| ... | ... | @@ -2210,16 +2211,71 @@ pub const TargetQuery = struct { |
| 2210 | 2211 | default, |
| 2211 | 2212 | |
| 2212 | 2213 | pub fn init(x: ?std.Target.Abi) @This() { |
| 2213 | | // TODO comptime assert the enums match |
| 2214 | | return @enumFromInt(@intFromEnum(x orelse return .default)); |
| 2214 | return switch (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 | 2245 | pub fn unwrap(this: @This()) ?std.Target.Abi { |
| 2218 | | // TODO comptime assert the enums match |
| 2219 | | if (this == .default) return null; |
| 2220 | | return @enumFromInt(@intFromEnum(this)); |
| 2246 | return switch (this) { |
| 2247 | .none => .none, |
| 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 | 2279 | pub const CpuArch = enum(u6) { |
| 2224 | 2280 | aarch64, |
| 2225 | 2281 | aarch64_be, |
| ... | ... | @@ -2233,6 +2289,7 @@ pub const TargetQuery = struct { |
| 2233 | 2289 | bpfeb, |
| 2234 | 2290 | bpfel, |
| 2235 | 2291 | csky, |
| 2292 | ez80, |
| 2236 | 2293 | hexagon, |
| 2237 | 2294 | hppa, |
| 2238 | 2295 | hppa64, |
| ... | ... | @@ -2283,16 +2340,136 @@ pub const TargetQuery = struct { |
| 2283 | 2340 | default, |
| 2284 | 2341 | |
| 2285 | 2342 | pub fn init(x: ?std.Target.Cpu.Arch) @This() { |
| 2286 | | // TODO comptime assert the enums match |
| 2287 | | return @enumFromInt(@intFromEnum(x orelse return .default)); |
| 2343 | return switch (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 | 2406 | pub fn unwrap(this: @This()) ?std.Target.Cpu.Arch { |
| 2291 | | // TODO comptime assert the enums match |
| 2292 | | if (this == .default) return null; |
| 2293 | | return @enumFromInt(@intFromEnum(this)); |
| 2407 | return switch (this) { |
| 2408 | .aarch64 => .aarch64, |
| 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 | 2473 | pub const OsTag = enum(u6) { |
| 2297 | 2474 | freestanding, |
| 2298 | 2475 | other, |
| ... | ... | @@ -2390,7 +2567,6 @@ pub const TargetQuery = struct { |
| 2390 | 2567 | |
| 2391 | 2568 | pub fn unwrap(this: @This()) ?std.Target.Os.Tag { |
| 2392 | 2569 | return switch (this) { |
| 2393 | | .default => null, |
| 2394 | 2570 | .freestanding => .freestanding, |
| 2395 | 2571 | .other => .other, |
| 2396 | 2572 | .contiki => .contiki, |
| ... | ... | @@ -2434,6 +2610,8 @@ pub const TargetQuery = struct { |
| 2434 | 2610 | .opengl => .opengl, |
| 2435 | 2611 | .vulkan => .vulkan, |
| 2436 | 2612 | .tios => .tios, |
| 2613 | |
| 2614 | .default => null, |
| 2437 | 2615 | }; |
| 2438 | 2616 | } |
| 2439 | 2617 | }; |