@@ -40,28 +40,24 @@ The `compiler-rt` library that comes with LLVM only implements runtime library f
40
40
41
41
Here is the list of functions that need to be implemented:
42
42
43
- ``` c
44
- // si_int = i32
45
- // su_int = u32
46
- // ti_int = i128
47
- // tu_int = u128
48
- ti_int __ashlti3 (ti_int a, si_int b);
49
- ti_int __ ashrti3(ti_int a, si_int b);
50
- ti_int __ divti3(ti_int a, ti_int b);
51
- ti_int __ fixdfti(double a);
52
- ti_int __ fixsfti(float a);
53
- tu_int __ fixunsdfti(double a);
54
- tu_int __ fixunssfti(float a);
55
- double __ floattidf(ti_int a);
56
- float __ floattisf(ti_int a);
57
- double __ floatuntidf(tu_int a);
58
- float __ floatuntisf(tu_int a);
59
- ti_int __ lshrti3(ti_int a, si_int b);
60
- ti_int __ modti3(ti_int a, ti_int b);
61
- ti_int __ muloti4(ti_int a, ti_int b, int* overflow);
62
- ti_int __ multi3(ti_int a, ti_int b);
63
- tu_int __ udivti3(tu_int a, tu_int b);
64
- tu_int __ umodti3(tu_int a, tu_int b);
43
+ ``` rust
44
+ fn __ashlti3 (a : i128 , b : i32 ) -> i128 ;
45
+ fn __ashrti3 (a : i128 , b : i32 ) -> i128 ;
46
+ fn __divti3 (a : i128 , b : i128 ) -> i128 ;
47
+ fn __fixdfti (a : f64 ) -> i128 ;
48
+ fn __fixsfti (a : f32 ) -> i128 ;
49
+ fn __fixunsdfti (a : f64 ) -> u128 ;
50
+ fn __fixunssfti (a : f32 ) -> u128 ;
51
+ fn __floattidf (a : i128 ) -> f64 ;
52
+ fn __floattisf (a : i128 ) -> f32 ;
53
+ fn __floatuntidf (a : u128 ) -> f64 ;
54
+ fn __floatuntisf (a : u128 ) -> f32 ;
55
+ fn __lshrti3 (a : i128 , b : i32 ) -> i128 ;
56
+ fn __modti3 (a : i128 , b : i128 ) -> i128 ;
57
+ fn __muloti4 (a : i128 , b : i128 , overflow : & mut i32 ) -> i128 ;
58
+ fn __multi3 (a : i128 , b : i128 ) -> i128 ;
59
+ fn __udivti3 (a : u128 , b : u128 ) -> u128 ;
60
+ fn __umodti3 (a : u128 , b : u128 ) -> u128 ;
65
61
```
66
62
67
63
Implementations of these functions will be written in Rust and will be included in libcore.
0 commit comments