mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
The Zig LLVM backend emits calls to softfloat methods with the "standard compiler-rt" names. Rather than add complexity to the backend and have to synchronize the naming scheme across all targets, the simplest fix is just to export these symbols under both the "standard" and the platform-specific naming convention.
24 lines
783 B
Zig
24 lines
783 B
Zig
const builtin = @import("builtin");
|
|
const common = @import("./common.zig");
|
|
const intToFloat = @import("./int_to_float.zig").intToFloat;
|
|
|
|
pub const panic = common.panic;
|
|
|
|
comptime {
|
|
if (common.want_windows_v2u64_abi) {
|
|
@export(__floatuntitf_windows_x86_64, .{ .name = "__floatuntitf", .linkage = common.linkage });
|
|
} else {
|
|
if (common.want_ppc_abi) {
|
|
@export(__floatuntitf, .{ .name = "__floatuntikf", .linkage = common.linkage });
|
|
}
|
|
@export(__floatuntitf, .{ .name = "__floatuntitf", .linkage = common.linkage });
|
|
}
|
|
}
|
|
|
|
pub fn __floatuntitf(a: u128) callconv(.C) f128 {
|
|
return intToFloat(f128, a);
|
|
}
|
|
|
|
fn __floatuntitf_windows_x86_64(a: @Vector(2, u64)) callconv(.C) f128 {
|
|
return intToFloat(f128, @bitCast(u128, a));
|
|
}
|