@@ -57,17 +57,47 @@ pub unsafe fn __aeabi_ldivmod() {
57
57
intrinsics:: unreachable ( ) ;
58
58
}
59
59
60
- // TODO: These two functions should be defined as aliases
60
+ // TODO: These aeabi_* functions should be defined as aliases
61
61
#[ cfg_attr( not( test) , no_mangle) ]
62
- pub extern "C" fn __aeabi_uidiv ( a : u32 , b : u32 ) -> u32 {
63
- :: int:: udiv:: __udivsi3 ( a, b)
62
+ pub extern "C" fn __aeabi_dadd ( a : f64 , b : f64 ) -> f64 {
63
+ :: float:: add:: __adddf3 ( a, b)
64
+ }
65
+
66
+ #[ cfg_attr( not( test) , no_mangle) ]
67
+ pub extern "C" fn __aeabi_fadd ( a : f32 , b : f32 ) -> f32 {
68
+ :: float:: add:: __addsf3 ( a, b)
64
69
}
65
70
66
71
#[ cfg_attr( not( test) , no_mangle) ]
67
72
pub extern "C" fn __aeabi_idiv ( a : i32 , b : i32 ) -> i32 {
68
73
:: int:: sdiv:: __divsi3 ( a, b)
69
74
}
70
75
76
+ #[ cfg_attr( not( test) , no_mangle) ]
77
+ pub extern "C" fn __aeabi_lasr ( a : i64 , b : u32 ) -> i64 {
78
+ :: int:: shift:: __ashrdi3 ( a, b)
79
+ }
80
+
81
+ #[ cfg_attr( not( test) , no_mangle) ]
82
+ pub extern "C" fn __aeabi_llsl ( a : u64 , b : u32 ) -> u64 {
83
+ :: int:: shift:: __ashldi3 ( a, b)
84
+ }
85
+
86
+ #[ cfg_attr( not( test) , no_mangle) ]
87
+ pub extern "C" fn __aeabi_llsr ( a : u64 , b : u32 ) -> u64 {
88
+ :: int:: shift:: __lshrdi3 ( a, b)
89
+ }
90
+
91
+ #[ cfg_attr( not( test) , no_mangle) ]
92
+ pub extern "C" fn __aeabi_lmul ( a : u64 , b : u64 ) -> u64 {
93
+ :: int:: mul:: __muldi3 ( a, b)
94
+ }
95
+
96
+ #[ cfg_attr( not( test) , no_mangle) ]
97
+ pub extern "C" fn __aeabi_uidiv ( a : u32 , b : u32 ) -> u32 {
98
+ :: int:: udiv:: __udivsi3 ( a, b)
99
+ }
100
+
71
101
extern "C" {
72
102
fn memcpy ( dest : * mut u8 , src : * const u8 , n : usize ) -> * mut u8 ;
73
103
fn memmove ( dest : * mut u8 , src : * const u8 , n : usize ) -> * mut u8 ;
0 commit comments