| ... | ... | @@ -461,26 +461,71 @@ pub fn llvmMachineAbi(target: std.Target) ?[:0]const u8 { |
| 461 | 461 | |
| 462 | 462 | /// This function returns 1 if function alignment is not observable or settable. |
| 463 | 463 | pub fn defaultFunctionAlignment(target: std.Target) Alignment { |
| 464 | // Overrides of the minimum for performance. |
| 464 | 465 | return switch (target.cpu.arch) { |
| 465 | | .arm, .armeb => .@"4", |
| 466 | | .aarch64, .aarch64_be => .@"4", |
| 467 | | .sparc, .sparc64 => .@"4", |
| 468 | | .riscv64 => .@"2", |
| 469 | | else => .@"1", |
| 466 | .csky, |
| 467 | .thumb, |
| 468 | .thumbeb, |
| 469 | .xcore, |
| 470 | => .@"4", |
| 471 | .aarch64, |
| 472 | .aarch64_be, |
| 473 | .hexagon, |
| 474 | .powerpc, |
| 475 | .powerpcle, |
| 476 | .powerpc64, |
| 477 | .powerpc64le, |
| 478 | .s390x, |
| 479 | .x86, |
| 480 | .x86_64, |
| 481 | => .@"16", |
| 482 | .loongarch32, |
| 483 | .loongarch64, |
| 484 | => .@"32", |
| 485 | else => minFunctionAlignment(target), |
| 470 | 486 | }; |
| 471 | 487 | } |
| 472 | 488 | |
| 489 | /// This function returns 1 if function alignment is not observable or settable. |
| 473 | 490 | pub fn minFunctionAlignment(target: std.Target) Alignment { |
| 474 | 491 | return switch (target.cpu.arch) { |
| 492 | .riscv32, |
| 493 | .riscv64, |
| 494 | => if (std.Target.riscv.featureSetHasAny(target.cpu.features, .{ .c, .zca })) .@"2" else .@"4", |
| 495 | .thumb, |
| 496 | .thumbeb, |
| 497 | .csky, |
| 498 | .m68k, |
| 499 | .msp430, |
| 500 | .s390x, |
| 501 | .xcore, |
| 502 | => .@"2", |
| 503 | .arc, |
| 475 | 504 | .arm, |
| 476 | 505 | .armeb, |
| 477 | 506 | .aarch64, |
| 478 | 507 | .aarch64_be, |
| 479 | | .riscv32, |
| 480 | | .riscv64, |
| 508 | .hexagon, |
| 509 | .lanai, |
| 510 | .loongarch32, |
| 511 | .loongarch64, |
| 512 | .mips, |
| 513 | .mipsel, |
| 514 | .powerpc, |
| 515 | .powerpcle, |
| 516 | .powerpc64, |
| 517 | .powerpc64le, |
| 481 | 518 | .sparc, |
| 482 | 519 | .sparc64, |
| 483 | | => .@"2", |
| 520 | .xtensa, |
| 521 | => .@"4", |
| 522 | .bpfel, |
| 523 | .bpfeb, |
| 524 | .mips64, |
| 525 | .mips64el, |
| 526 | => .@"8", |
| 527 | .ve, |
| 528 | => .@"16", |
| 484 | 529 | else => .@"1", |
| 485 | 530 | }; |
| 486 | 531 | } |