Skip to content

Commit f0fb19c

Browse files
committed
Add missing float libcalls to compiler_builtins.rs
1 parent dcd3168 commit f0fb19c

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

src/compiler_builtins.rs

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,49 @@ builtin_functions! {
4646
fn __rust_u128_mulo(a: u128, b: u128, oflow: &mut i32) -> u128;
4747
fn __rust_i128_mulo(a: i128, b: i128, oflow: &mut i32) -> i128;
4848

49-
// floats
49+
// integer -> float
5050
fn __floattisf(i: i128) -> f32;
5151
fn __floattidf(i: i128) -> f64;
5252
fn __floatuntisf(i: u128) -> f32;
5353
fn __floatuntidf(i: u128) -> f64;
54+
// float -> integer
5455
fn __fixsfti(f: f32) -> i128;
5556
fn __fixdfti(f: f64) -> i128;
5657
fn __fixunssfti(f: f32) -> u128;
5758
fn __fixunsdfti(f: f64) -> u128;
59+
// float binops
60+
fn fmodf(a: f32, b: f32) -> f32;
61+
fn fmod(a: f64, b: f64) -> f64;
62+
// Cranelift float libcalls
63+
fn fmaf(a: f32, b: f32, c: f32) -> f32;
64+
fn fma(a: f64, b: f64, c: f64) -> f64;
65+
fn floorf(f: f32) -> f32;
66+
fn floor(f: f64) -> f64;
67+
fn ceilf(f: f32) -> f32;
68+
fn ceil(f: f64) -> f64;
69+
fn truncf(f: f32) -> f32;
70+
fn trunc(f: f64) -> f64;
71+
fn nearbyintf(f: f32) -> f32;
72+
fn nearbyint(f: f64) -> f64;
73+
// float intrinsics
74+
fn __powisf2(a: f32, b: i32) -> f32;
75+
fn __powidf2(a: f64, b: i32) -> f64;
76+
fn powf(a: f32, b: f32) -> f32;
77+
fn pow(a: f64, b: f64) -> f64;
78+
fn expf(f: f32) -> f32;
79+
fn exp(f: f64) -> f64;
80+
fn exp2f(f: f32) -> f32;
81+
fn exp2(f: f64) -> f64;
82+
fn logf(f: f32) -> f32;
83+
fn log(f: f64) -> f64;
84+
fn log2f(f: f32) -> f32;
85+
fn log2(f: f64) -> f64;
86+
fn log10f(f: f32) -> f32;
87+
fn log10(f: f64) -> f64;
88+
fn sinf(f: f32) -> f32;
89+
fn sin(f: f64) -> f64;
90+
fn cosf(f: f32) -> f32;
91+
fn cos(f: f64) -> f64;
5892

5993
// allocator
6094
// NOTE: These need to be mentioned here despite not being part of compiler_builtins because

0 commit comments

Comments
 (0)