| ... | @@ -461,26 +461,71 @@ pub fn llvmMachineAbi(target: std.Target) ?[:0]const u8 { | ... | @@ -461,26 +461,71 @@ pub fn llvmMachineAbi(target: std.Target) ?[:0]const u8 { |
| 461 | | 461 | |
| 462 | /// This function returns 1 if function alignment is not observable or settable. | 462 | /// This function returns 1 if function alignment is not observable or settable. |
| 463 | pub fn defaultFunctionAlignment(target: std.Target) Alignment { | 463 | pub fn defaultFunctionAlignment(target: std.Target) Alignment { |
| | 464 | // Overrides of the minimum for performance. |
| 464 | return switch (target.cpu.arch) { | 465 | return switch (target.cpu.arch) { |
| 465 | .arm, .armeb => .@"4", | 466 | .csky, |
| 466 | .aarch64, .aarch64_be => .@"4", | 467 | .thumb, |
| 467 | .sparc, .sparc64 => .@"4", | 468 | .thumbeb, |
| 468 | .riscv64 => .@"2", | 469 | .xcore, |
| 469 | else => .@"1", | 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 | pub fn minFunctionAlignment(target: std.Target) Alignment { | 490 | pub fn minFunctionAlignment(target: std.Target) Alignment { |
| 474 | return switch (target.cpu.arch) { | 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 | .arm, | 504 | .arm, |
| 476 | .armeb, | 505 | .armeb, |
| 477 | .aarch64, | 506 | .aarch64, |
| 478 | .aarch64_be, | 507 | .aarch64_be, |
| 479 | .riscv32, | 508 | .hexagon, |
| 480 | .riscv64, | 509 | .lanai, |
| | 510 | .loongarch32, |
| | 511 | .loongarch64, |
| | 512 | .mips, |
| | 513 | .mipsel, |
| | 514 | .powerpc, |
| | 515 | .powerpcle, |
| | 516 | .powerpc64, |
| | 517 | .powerpc64le, |
| 481 | .sparc, | 518 | .sparc, |
| 482 | .sparc64, | 519 | .sparc64, |
| 483 | => .@"2", | 520 | .xtensa, |
| | 521 | => .@"4", |
| | 522 | .bpfel, |
| | 523 | .bpfeb, |
| | 524 | .mips64, |
| | 525 | .mips64el, |
| | 526 | => .@"8", |
| | 527 | .ve, |
| | 528 | => .@"16", |
| 484 | else => .@"1", | 529 | else => .@"1", |
| 485 | }; | 530 | }; |
| 486 | } | 531 | } |