intrinsics! { | |
// Implementation from gcc | |
// https://raw.githubusercontent.com/gcc-mirror/gcc/master/libgcc/config/epiphany/mulsi3.c | |
pub extern "C" fn __mulsi3(a: u32, b: u32) -> u32 { | |
let (mut a, mut b) = (a, b); | |
let mut r = 0; | |
while a > 0 { | |
if a & 1 > 0 { | |
r += b; | |
} | |
a >>= 1; | |
b <<= 1; | |
} | |
r | |
} | |
} |