@@ -60,42 +60,52 @@ impl Divmod for i64 {}
60
60
intrinsics ! {
61
61
#[ maybe_use_optimized_c_shim]
62
62
#[ arm_aeabi_alias = __aeabi_idiv]
63
+ /// Returns `n / d`
63
64
pub extern "C" fn __divsi3( a: i32 , b: i32 ) -> i32 {
64
65
a. div( b)
65
66
}
66
67
67
68
#[ maybe_use_optimized_c_shim]
68
- pub extern "C" fn __divdi3( a: i64 , b: i64 ) -> i64 {
69
- a. div( b)
69
+ /// Returns `n % d`
70
+ pub extern "C" fn __modsi3( a: i32 , b: i32 ) -> i32 {
71
+ a. mod_( b)
70
72
}
71
-
72
- #[ win64_128bit_abi_hack]
73
- pub extern "C" fn __divti3( a: i128 , b: i128 ) -> i128 {
74
- a. div( b)
73
+
74
+ #[ maybe_use_optimized_c_shim]
75
+ /// Returns `n / d` and sets `*rem = n % d`
76
+ pub extern "C" fn __divmodsi4( a: i32 , b: i32 , rem: & mut i32 ) -> i32 {
77
+ a. divmod( b, rem, |a, b| __divsi3( a, b) )
75
78
}
76
79
77
80
#[ maybe_use_optimized_c_shim]
78
- pub extern "C" fn __modsi3( a: i32 , b: i32 ) -> i32 {
79
- a. mod_( b)
81
+ /// Returns `n / d`
82
+ pub extern "C" fn __divdi3( a: i64 , b: i64 ) -> i64 {
83
+ a. div( b)
80
84
}
81
85
82
86
#[ maybe_use_optimized_c_shim]
87
+ /// Returns `n % d`
83
88
pub extern "C" fn __moddi3( a: i64 , b: i64 ) -> i64 {
84
89
a. mod_( b)
85
90
}
86
91
87
- #[ win64_128bit_abi_hack]
88
- pub extern "C" fn __modti3( a: i128 , b: i128 ) -> i128 {
89
- a. mod_( b)
92
+ #[ aapcs_on_arm]
93
+ /// Returns `n / d` and sets `*rem = n % d`
94
+ pub extern "C" fn __divmoddi4( a: i64 , b: i64 , rem: & mut i64 ) -> i64 {
95
+ a. divmod( b, rem, |a, b| __divdi3( a, b) )
90
96
}
91
97
92
- #[ maybe_use_optimized_c_shim]
93
- pub extern "C" fn __divmodsi4( a: i32 , b: i32 , rem: & mut i32 ) -> i32 {
94
- a. divmod( b, rem, |a, b| __divsi3( a, b) )
98
+ #[ win64_128bit_abi_hack]
99
+ /// Returns `n / d`
100
+ pub extern "C" fn __divti3( a: i128 , b: i128 ) -> i128 {
101
+ a. div( b)
95
102
}
96
103
97
- #[ aapcs_on_arm]
98
- pub extern "C" fn __divmoddi4( a: i64 , b: i64 , rem: & mut i64 ) -> i64 {
99
- a. divmod( b, rem, |a, b| __divdi3( a, b) )
104
+ #[ win64_128bit_abi_hack]
105
+ /// Returns `n % d`
106
+ pub extern "C" fn __modti3( a: i128 , b: i128 ) -> i128 {
107
+ a. mod_( b)
100
108
}
109
+
110
+ // LLVM does not currently have a `__divmodti4` function
101
111
}
0 commit comments