riscv32.rs 393 B

1234567891011121314151617
  1. intrinsics! {
  2. // Implementation from gcc
  3. // https://raw.githubusercontent.com/gcc-mirror/gcc/master/libgcc/config/epiphany/mulsi3.c
  4. pub extern "C" fn __mulsi3(mut a: u32, mut b: u32) -> u32 {
  5. let mut r: usize = 0;
  6. while a > 0 {
  7. if a & 1 > 0 {
  8. r += b;
  9. }
  10. a >>= 1;
  11. b <<= 1;
  12. }
  13. r
  14. }
  15. }