@@ -57,17 +57,47 @@ pub unsafe fn __aeabi_ldivmod() {
5757 intrinsics:: unreachable ( ) ;
5858}
5959
60- // TODO: These two functions should be defined as aliases
60+ // TODO: These aeabi_* functions should be defined as aliases
6161#[ 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)
6469}
6570
6671#[ cfg_attr( not( test) , no_mangle) ]
6772pub extern "C" fn __aeabi_idiv ( a : i32 , b : i32 ) -> i32 {
6873 :: int:: sdiv:: __divsi3 ( a, b)
6974}
7075
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+
71101extern "C" {
72102 fn memcpy ( dest : * mut u8 , src : * const u8 , n : usize ) -> * mut u8 ;
73103 fn memmove ( dest : * mut u8 , src : * const u8 , n : usize ) -> * mut u8 ;
0 commit comments