1 macro builtin_functions($register:ident; $(fn $name:ident($($arg_name:ident: $arg_ty:ty),*) -> $ret_ty:ty;)*) {
2 #[cfg(feature = "jit")]
3 #[allow(improper_ctypes)]
5 $(fn $name($($arg_name: $arg_ty),*) -> $ret_ty;)*
8 #[cfg(feature = "jit")]
9 pub(crate) fn $register(builder: &mut cranelift_jit::JITBuilder) {
10 for &(name, val) in &[$((stringify!($name), $name as *const u8)),*] {
11 builder.symbol(name, val);
17 register_functions_for_jit;
20 fn __multi3(a: i128, b: i128) -> i128;
21 fn __udivti3(n: u128, d: u128) -> u128;
22 fn __divti3(n: i128, d: i128) -> i128;
23 fn __umodti3(n: u128, d: u128) -> u128;
24 fn __modti3(n: i128, d: i128) -> i128;
25 fn __rust_u128_addo(a: u128, b: u128) -> (u128, bool);
26 fn __rust_i128_addo(a: i128, b: i128) -> (i128, bool);
27 fn __rust_u128_subo(a: u128, b: u128) -> (u128, bool);
28 fn __rust_i128_subo(a: i128, b: i128) -> (i128, bool);
29 fn __rust_u128_mulo(a: u128, b: u128) -> (u128, bool);
30 fn __rust_i128_mulo(a: i128, b: i128) -> (i128, bool);
33 fn __floattisf(i: i128) -> f32;
34 fn __floattidf(i: i128) -> f64;
35 fn __floatuntisf(i: u128) -> f32;
36 fn __floatuntidf(i: u128) -> f64;
37 fn __fixsfti(f: f32) -> i128;
38 fn __fixdfti(f: f64) -> i128;
39 fn __fixunssfti(f: f32) -> u128;
40 fn __fixunsdfti(f: f64) -> u128;