commit
6cbe66f40e
2 changed files with 20 additions and 0 deletions
|
|
@ -58,6 +58,9 @@ pub mod arm;
|
|||
#[cfg(all(kernel_user_helpers, target_os = "linux", target_arch = "arm"))]
|
||||
pub mod arm_linux;
|
||||
|
||||
#[cfg(any(target_arch = "riscv32"))]
|
||||
pub mod riscv32;
|
||||
|
||||
#[cfg(target_arch = "x86")]
|
||||
pub mod x86;
|
||||
|
||||
|
|
|
|||
17
library/compiler-builtins/src/riscv32.rs
Normal file
17
library/compiler-builtins/src/riscv32.rs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
intrinsics! {
|
||||
// Implementation from gcc
|
||||
// https://raw.githubusercontent.com/gcc-mirror/gcc/master/libgcc/config/epiphany/mulsi3.c
|
||||
pub extern "C" fn __mulsi3(mut a: u32, mut b: u32) -> u32 {
|
||||
let mut r: usize = 0;
|
||||
|
||||
while a > 0 {
|
||||
if a & 1 > 0 {
|
||||
r += b;
|
||||
}
|
||||
a >>= 1;
|
||||
b <<= 1;
|
||||
}
|
||||
|
||||
r
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue