authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-03-06 16:34:44-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-03-06 16:34:44-07:00
log4c17b93f0a002606187430533c9efb2af89e8c63
treee1c4214855502ce163b8961d6b3e75918c331b69
parent488eb8ac291adc0b6f48782edc64f9ea8e6723bb

compiler_rt: additional powerpc-specific alias

Apparently LLVM lowers f128 fma to `fmaf128` instead of `fmal`.

1 files changed, 24 insertions(+), 21 deletions(-)

lib/std/special/compiler_rt.zig+24-21
...@@ -674,6 +674,27 @@ comptime {...@@ -674,6 +674,27 @@ comptime {
674 @export(_aullrem, .{ .name = "\x01__aullrem", .linkage = strong_linkage });674 @export(_aullrem, .{ .name = "\x01__aullrem", .linkage = strong_linkage });
675 }675 }
676676
677 const fmodl = @import("compiler_rt/floatfmodl.zig").fmodl;
678 @export(fmodl, .{ .name = "fmodl", .linkage = linkage });
679
680 @export(floorf, .{ .name = "floorf", .linkage = linkage });
681 @export(floor, .{ .name = "floor", .linkage = linkage });
682 @export(floorl, .{ .name = "floorl", .linkage = linkage });
683
684 @export(fma, .{ .name = "fma", .linkage = linkage });
685 @export(fmaf, .{ .name = "fmaf", .linkage = linkage });
686 @export(fmal, .{ .name = "fmal", .linkage = linkage });
687 if (long_double_is_f80) {
688 @export(fmal, .{ .name = "__fmax", .linkage = linkage });
689 } else {
690 @export(__fmax, .{ .name = "__fmax", .linkage = linkage });
691 }
692 if (long_double_is_f128) {
693 @export(fmal, .{ .name = "fmaq", .linkage = linkage });
694 } else {
695 @export(fmaq, .{ .name = "fmaq", .linkage = linkage });
696 }
697
677 if (arch.isSPARC()) {698 if (arch.isSPARC()) {
678 // SPARC systems use a different naming scheme699 // SPARC systems use a different naming scheme
679 const _Qp_add = @import("compiler_rt/sparc.zig")._Qp_add;700 const _Qp_add = @import("compiler_rt/sparc.zig")._Qp_add;
...@@ -726,7 +747,7 @@ comptime {...@@ -726,7 +747,7 @@ comptime {
726 @export(_Qp_qtod, .{ .name = "_Qp_qtod", .linkage = linkage });747 @export(_Qp_qtod, .{ .name = "_Qp_qtod", .linkage = linkage });
727 }748 }
728749
729 if ((arch == .powerpc or arch.isPPC64()) and !is_test) {750 if ((arch.isPPC() or arch.isPPC64()) and !is_test) {
730 @export(__addtf3, .{ .name = "__addkf3", .linkage = linkage });751 @export(__addtf3, .{ .name = "__addkf3", .linkage = linkage });
731 @export(__subtf3, .{ .name = "__subkf3", .linkage = linkage });752 @export(__subtf3, .{ .name = "__subkf3", .linkage = linkage });
732 @export(__multf3, .{ .name = "__mulkf3", .linkage = linkage });753 @export(__multf3, .{ .name = "__mulkf3", .linkage = linkage });
...@@ -751,27 +772,9 @@ comptime {...@@ -751,27 +772,9 @@ comptime {
751 @export(__letf2, .{ .name = "__lekf2", .linkage = linkage });772 @export(__letf2, .{ .name = "__lekf2", .linkage = linkage });
752 @export(__getf2, .{ .name = "__gtkf2", .linkage = linkage });773 @export(__getf2, .{ .name = "__gtkf2", .linkage = linkage });
753 @export(__unordtf2, .{ .name = "__unordkf2", .linkage = linkage });774 @export(__unordtf2, .{ .name = "__unordkf2", .linkage = linkage });
754 }
755
756 const fmodl = @import("compiler_rt/floatfmodl.zig").fmodl;
757 @export(fmodl, .{ .name = "fmodl", .linkage = linkage });
758
759 @export(floorf, .{ .name = "floorf", .linkage = linkage });
760 @export(floor, .{ .name = "floor", .linkage = linkage });
761 @export(floorl, .{ .name = "floorl", .linkage = linkage });
762775
763 @export(fma, .{ .name = "fma", .linkage = linkage });776 // LLVM PPC backend lowers f128 fma to `fmaf128`.
764 @export(fmaf, .{ .name = "fmaf", .linkage = linkage });777 @export(fmal, .{ .name = "fmaf128", .linkage = linkage });
765 @export(fmal, .{ .name = "fmal", .linkage = linkage });
766 if (long_double_is_f80) {
767 @export(fmal, .{ .name = "__fmax", .linkage = linkage });
768 } else {
769 @export(__fmax, .{ .name = "__fmax", .linkage = linkage });
770 }
771 if (long_double_is_f128) {
772 @export(fmal, .{ .name = "fmaq", .linkage = linkage });
773 } else {
774 @export(fmaq, .{ .name = "fmaq", .linkage = linkage });
775 }778 }
776}779}
777780