mirror of
https://github.com/ziglang/zig.git
synced 2024-11-27 23:52:31 +00:00
c99c085d70
The purpose of this branch is to switch to using an object file for each independent function, in order to make linking simpler - instead of relying on `-ffunction-sections` and `--gc-sections`, which involves the linker doing the work of linking everything and then undoing work via garbage collection, this will allow the linker to only include the compilation units that are depended on in the first place. This commit makes progress towards that goal.
22 lines
599 B
Zig
22 lines
599 B
Zig
const common = @import("./common.zig");
|
|
|
|
pub const panic = common.panic;
|
|
|
|
comptime {
|
|
if (common.want_aeabi) {
|
|
@export(__aeabi_dsub, .{ .name = "__aeabi_dsub", .linkage = common.linkage });
|
|
} else {
|
|
@export(__subdf3, .{ .name = "__subdf3", .linkage = common.linkage });
|
|
}
|
|
}
|
|
|
|
fn __subdf3(a: f64, b: f64) callconv(.C) f64 {
|
|
const neg_b = @bitCast(f64, @bitCast(u64, b) ^ (@as(u64, 1) << 63));
|
|
return a + neg_b;
|
|
}
|
|
|
|
fn __aeabi_dsub(a: f64, b: f64) callconv(.AAPCS) f64 {
|
|
const neg_b = @bitCast(f64, @bitCast(u64, b) ^ (@as(u64, 1) << 63));
|
|
return a + neg_b;
|
|
}
|