Skip to content

Commit d5e38be

Browse files
committed
Auto merge of #71 - japaric:aeabi-aliases, r=japaric
add missing aeabi aliases
2 parents b46719e + d34be6a commit d5e38be

File tree

2 files changed

+33
-16
lines changed

2 files changed

+33
-16
lines changed

src/arm.rs

+33-3
Original file line numberDiff line numberDiff line change
@@ -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)]
6772
pub 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+
71101
extern "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;

src/float/add.rs

-13
Original file line numberDiff line numberDiff line change
@@ -183,19 +183,6 @@ macro_rules! add {
183183
add!(__addsf3: f32);
184184
add!(__adddf3: f64);
185185

186-
// FIXME: Implement these using aliases
187-
#[cfg(target_arch = "arm")]
188-
#[cfg_attr(not(test), no_mangle)]
189-
pub extern fn __aeabi_dadd(a: f64, b: f64) -> f64 {
190-
__adddf3(a, b)
191-
}
192-
193-
#[cfg(target_arch = "arm")]
194-
#[cfg_attr(not(test), no_mangle)]
195-
pub extern fn __aeabi_fadd(a: f32, b: f32) -> f32 {
196-
__addsf3(a, b)
197-
}
198-
199186
#[cfg(test)]
200187
mod tests {
201188
use core::{f32, f64};

0 commit comments

Comments
 (0)