| ... | @@ -93,6 +93,8 @@ pub const Target = union(enum).{ | ... | @@ -93,6 +93,8 @@ pub const Target = union(enum).{ |
| 93 | /// TODO expose the arch and subarch separately | 93 | /// TODO expose the arch and subarch separately |
| 94 | pub fn isArmOrThumb(self: Target) bool { | 94 | pub fn isArmOrThumb(self: Target) bool { |
| 95 | return switch (self.getArch()) { | 95 | return switch (self.getArch()) { |
| | 96 | builtin.Arch.armv8_5a, |
| | 97 | builtin.Arch.armv8_4a, |
| 96 | builtin.Arch.armv8_3a, | 98 | builtin.Arch.armv8_3a, |
| 97 | builtin.Arch.armv8_2a, | 99 | builtin.Arch.armv8_2a, |
| 98 | builtin.Arch.armv8_1a, | 100 | builtin.Arch.armv8_1a, |
| ... | @@ -113,6 +115,8 @@ pub const Target = union(enum).{ | ... | @@ -113,6 +115,8 @@ pub const Target = union(enum).{ |
| 113 | builtin.Arch.armv5, | 115 | builtin.Arch.armv5, |
| 114 | builtin.Arch.armv5te, | 116 | builtin.Arch.armv5te, |
| 115 | builtin.Arch.armv4t, | 117 | builtin.Arch.armv4t, |
| | 118 | builtin.Arch.armebv8_5a, |
| | 119 | builtin.Arch.armebv8_4a, |
| 116 | builtin.Arch.armebv8_3a, | 120 | builtin.Arch.armebv8_3a, |
| 117 | builtin.Arch.armebv8_2a, | 121 | builtin.Arch.armebv8_2a, |
| 118 | builtin.Arch.armebv8_1a, | 122 | builtin.Arch.armebv8_1a, |
| ... | @@ -181,6 +185,8 @@ pub const Target = union(enum).{ | ... | @@ -181,6 +185,8 @@ pub const Target = union(enum).{ |
| 181 | => return 16, | 185 | => return 16, |
| 182 | | 186 | |
| 183 | builtin.Arch.arc, | 187 | builtin.Arch.arc, |
| | 188 | builtin.Arch.armv8_5a, |
| | 189 | builtin.Arch.armv8_4a, |
| 184 | builtin.Arch.armv8_3a, | 190 | builtin.Arch.armv8_3a, |
| 185 | builtin.Arch.armv8_2a, | 191 | builtin.Arch.armv8_2a, |
| 186 | builtin.Arch.armv8_1a, | 192 | builtin.Arch.armv8_1a, |
| ... | @@ -201,6 +207,8 @@ pub const Target = union(enum).{ | ... | @@ -201,6 +207,8 @@ pub const Target = union(enum).{ |
| 201 | builtin.Arch.armv5, | 207 | builtin.Arch.armv5, |
| 202 | builtin.Arch.armv5te, | 208 | builtin.Arch.armv5te, |
| 203 | builtin.Arch.armv4t, | 209 | builtin.Arch.armv4t, |
| | 210 | builtin.Arch.armebv8_5a, |
| | 211 | builtin.Arch.armebv8_4a, |
| 204 | builtin.Arch.armebv8_3a, | 212 | builtin.Arch.armebv8_3a, |
| 205 | builtin.Arch.armebv8_2a, | 213 | builtin.Arch.armebv8_2a, |
| 206 | builtin.Arch.armebv8_1a, | 214 | builtin.Arch.armebv8_1a, |
| ... | @@ -223,8 +231,8 @@ pub const Target = union(enum).{ | ... | @@ -223,8 +231,8 @@ pub const Target = union(enum).{ |
| 223 | builtin.Arch.armebv4t, | 231 | builtin.Arch.armebv4t, |
| 224 | builtin.Arch.hexagon, | 232 | builtin.Arch.hexagon, |
| 225 | builtin.Arch.le32, | 233 | builtin.Arch.le32, |
| 226 | builtin.Arch.mips, | 234 | builtin.Arch.mipsr6, |
| 227 | builtin.Arch.mipsel, | 235 | builtin.Arch.mipselr6, |
| 228 | builtin.Arch.nios2, | 236 | builtin.Arch.nios2, |
| 229 | builtin.Arch.powerpc, | 237 | builtin.Arch.powerpc, |
| 230 | builtin.Arch.r600, | 238 | builtin.Arch.r600, |
| ... | @@ -250,6 +258,8 @@ pub const Target = union(enum).{ | ... | @@ -250,6 +258,8 @@ pub const Target = union(enum).{ |
| 250 | builtin.Arch.renderscript32, | 258 | builtin.Arch.renderscript32, |
| 251 | => return 32, | 259 | => return 32, |
| 252 | | 260 | |
| | 261 | builtin.Arch.aarch64v8_5a, |
| | 262 | builtin.Arch.aarch64v8_4a, |
| 253 | builtin.Arch.aarch64v8_3a, | 263 | builtin.Arch.aarch64v8_3a, |
| 254 | builtin.Arch.aarch64v8_2a, | 264 | builtin.Arch.aarch64v8_2a, |
| 255 | builtin.Arch.aarch64v8_1a, | 265 | builtin.Arch.aarch64v8_1a, |
| ... | @@ -257,6 +267,8 @@ pub const Target = union(enum).{ | ... | @@ -257,6 +267,8 @@ pub const Target = union(enum).{ |
| 257 | builtin.Arch.aarch64v8r, | 267 | builtin.Arch.aarch64v8r, |
| 258 | builtin.Arch.aarch64v8m_baseline, | 268 | builtin.Arch.aarch64v8m_baseline, |
| 259 | builtin.Arch.aarch64v8m_mainline, | 269 | builtin.Arch.aarch64v8m_mainline, |
| | 270 | builtin.Arch.aarch64_bev8_5a, |
| | 271 | builtin.Arch.aarch64_bev8_4a, |
| 260 | builtin.Arch.aarch64_bev8_3a, | 272 | builtin.Arch.aarch64_bev8_3a, |
| 261 | builtin.Arch.aarch64_bev8_2a, | 273 | builtin.Arch.aarch64_bev8_2a, |
| 262 | builtin.Arch.aarch64_bev8_1a, | 274 | builtin.Arch.aarch64_bev8_1a, |
| ... | @@ -264,8 +276,8 @@ pub const Target = union(enum).{ | ... | @@ -264,8 +276,8 @@ pub const Target = union(enum).{ |
| 264 | builtin.Arch.aarch64_bev8r, | 276 | builtin.Arch.aarch64_bev8r, |
| 265 | builtin.Arch.aarch64_bev8m_baseline, | 277 | builtin.Arch.aarch64_bev8m_baseline, |
| 266 | builtin.Arch.aarch64_bev8m_mainline, | 278 | builtin.Arch.aarch64_bev8m_mainline, |
| 267 | builtin.Arch.mips64, | 279 | builtin.Arch.mips64r6, |
| 268 | builtin.Arch.mips64el, | 280 | builtin.Arch.mips64elr6, |
| 269 | builtin.Arch.powerpc64, | 281 | builtin.Arch.powerpc64, |
| 270 | builtin.Arch.powerpc64le, | 282 | builtin.Arch.powerpc64le, |
| 271 | builtin.Arch.riscv64, | 283 | builtin.Arch.riscv64, |
| ... | @@ -328,6 +340,8 @@ pub const Target = union(enum).{ | ... | @@ -328,6 +340,8 @@ pub const Target = union(enum).{ |
| 328 | builtin.Arch.sparcel, | 340 | builtin.Arch.sparcel, |
| 329 | => return "/lib/ld-linux.so.2", | 341 | => return "/lib/ld-linux.so.2", |
| 330 | | 342 | |
| | 343 | builtin.Arch.aarch64v8_5a, |
| | 344 | builtin.Arch.aarch64v8_4a, |
| 331 | builtin.Arch.aarch64v8_3a, | 345 | builtin.Arch.aarch64v8_3a, |
| 332 | builtin.Arch.aarch64v8_2a, | 346 | builtin.Arch.aarch64v8_2a, |
| 333 | builtin.Arch.aarch64v8_1a, | 347 | builtin.Arch.aarch64v8_1a, |
| ... | @@ -337,6 +351,8 @@ pub const Target = union(enum).{ | ... | @@ -337,6 +351,8 @@ pub const Target = union(enum).{ |
| 337 | builtin.Arch.aarch64v8m_mainline, | 351 | builtin.Arch.aarch64v8m_mainline, |
| 338 | => return "/lib/ld-linux-aarch64.so.1", | 352 | => return "/lib/ld-linux-aarch64.so.1", |
| 339 | | 353 | |
| | 354 | builtin.Arch.aarch64_bev8_5a, |
| | 355 | builtin.Arch.aarch64_bev8_4a, |
| 340 | builtin.Arch.aarch64_bev8_3a, | 356 | builtin.Arch.aarch64_bev8_3a, |
| 341 | builtin.Arch.aarch64_bev8_2a, | 357 | builtin.Arch.aarch64_bev8_2a, |
| 342 | builtin.Arch.aarch64_bev8_1a, | 358 | builtin.Arch.aarch64_bev8_1a, |
| ... | @@ -346,6 +362,8 @@ pub const Target = union(enum).{ | ... | @@ -346,6 +362,8 @@ pub const Target = union(enum).{ |
| 346 | builtin.Arch.aarch64_bev8m_mainline, | 362 | builtin.Arch.aarch64_bev8m_mainline, |
| 347 | => return "/lib/ld-linux-aarch64_be.so.1", | 363 | => return "/lib/ld-linux-aarch64_be.so.1", |
| 348 | | 364 | |
| | 365 | builtin.Arch.armv8_5a, |
| | 366 | builtin.Arch.armv8_4a, |
| 349 | builtin.Arch.armv8_3a, | 367 | builtin.Arch.armv8_3a, |
| 350 | builtin.Arch.armv8_2a, | 368 | builtin.Arch.armv8_2a, |
| 351 | builtin.Arch.armv8_1a, | 369 | builtin.Arch.armv8_1a, |
| ... | @@ -372,6 +390,8 @@ pub const Target = union(enum).{ | ... | @@ -372,6 +390,8 @@ pub const Target = union(enum).{ |
| 372 | else => return "/lib/ld-linux.so.3", | 390 | else => return "/lib/ld-linux.so.3", |
| 373 | }, | 391 | }, |
| 374 | | 392 | |
| | 393 | builtin.Arch.armebv8_5a, |
| | 394 | builtin.Arch.armebv8_4a, |
| 375 | builtin.Arch.armebv8_3a, | 395 | builtin.Arch.armebv8_3a, |
| 376 | builtin.Arch.armebv8_2a, | 396 | builtin.Arch.armebv8_2a, |
| 377 | builtin.Arch.armebv8_1a, | 397 | builtin.Arch.armebv8_1a, |
| ... | @@ -398,10 +418,10 @@ pub const Target = union(enum).{ | ... | @@ -398,10 +418,10 @@ pub const Target = union(enum).{ |
| 398 | else => return "/lib/ld-linux.so.3", | 418 | else => return "/lib/ld-linux.so.3", |
| 399 | }, | 419 | }, |
| 400 | | 420 | |
| 401 | builtin.Arch.mips, | 421 | builtin.Arch.mipsr6, |
| 402 | builtin.Arch.mipsel, | 422 | builtin.Arch.mipselr6, |
| 403 | builtin.Arch.mips64, | 423 | builtin.Arch.mips64r6, |
| 404 | builtin.Arch.mips64el, | 424 | builtin.Arch.mips64elr6, |
| 405 | => return null, | 425 | => return null, |
| 406 | | 426 | |
| 407 | builtin.Arch.powerpc => return "/lib/ld.so.1", | 427 | builtin.Arch.powerpc => return "/lib/ld.so.1", |
| ... | @@ -550,6 +570,7 @@ pub const Target = union(enum).{ | ... | @@ -550,6 +570,7 @@ pub const Target = union(enum).{ |
| 550 | builtin.Os.mesa3d, | 570 | builtin.Os.mesa3d, |
| 551 | builtin.Os.contiki, | 571 | builtin.Os.contiki, |
| 552 | builtin.Os.amdpal, | 572 | builtin.Os.amdpal, |
| | 573 | builtin.Os.hermit, |
| 553 | => @panic("TODO specify the C integer type sizes for this OS"), | 574 | => @panic("TODO specify the C integer type sizes for this OS"), |
| 554 | } | 575 | } |
| 555 | } | 576 | } |
| ... | @@ -557,6 +578,8 @@ pub const Target = union(enum).{ | ... | @@ -557,6 +578,8 @@ pub const Target = union(enum).{ |
| 557 | pub fn getDarwinArchString(self: Target) []const u8 { | 578 | pub fn getDarwinArchString(self: Target) []const u8 { |
| 558 | const arch = self.getArch(); | 579 | const arch = self.getArch(); |
| 559 | switch (arch) { | 580 | switch (arch) { |
| | 581 | builtin.Arch.aarch64v8_5a, |
| | 582 | builtin.Arch.aarch64v8_4a, |
| 560 | builtin.Arch.aarch64v8_3a, | 583 | builtin.Arch.aarch64v8_3a, |
| 561 | builtin.Arch.aarch64v8_2a, | 584 | builtin.Arch.aarch64v8_2a, |
| 562 | builtin.Arch.aarch64v8_1a, | 585 | builtin.Arch.aarch64v8_1a, |
| ... | @@ -566,6 +589,8 @@ pub const Target = union(enum).{ | ... | @@ -566,6 +589,8 @@ pub const Target = union(enum).{ |
| 566 | builtin.Arch.aarch64v8m_mainline, | 589 | builtin.Arch.aarch64v8m_mainline, |
| 567 | => return "arm64", | 590 | => return "arm64", |
| 568 | builtin.Arch.thumb, | 591 | builtin.Arch.thumb, |
| | 592 | builtin.Arch.armv8_5a, |
| | 593 | builtin.Arch.armv8_4a, |
| 569 | builtin.Arch.armv8_3a, | 594 | builtin.Arch.armv8_3a, |
| 570 | builtin.Arch.armv8_2a, | 595 | builtin.Arch.armv8_2a, |
| 571 | builtin.Arch.armv8_1a, | 596 | builtin.Arch.armv8_1a, |