diff --git a/vlib/math/bits/bits.arm64.v b/vlib/math/bits/bits.arm64.v index cbad23d8dc..d0894d66d8 100644 --- a/vlib/math/bits/bits.arm64.v +++ b/vlib/math/bits/bits.arm64.v @@ -10,22 +10,18 @@ module bits // This function's execution time does not depend on the inputs. @[inline] pub fn mul_64(x u64, y u64) (u64, u64) { - $if android { - return mul_64_default(x, y) - } $else { - mut hi := u64(0) - mut lo := u64(0) - asm arm64 { - mul lo, x, y - umulh hi, x, y - ; =r (hi) - =r (lo) - ; r (x) - r (y) - ; cc - } - return hi, lo + mut hi := u64(0) + mut lo := u64(0) + asm arm64 { + mul lo, x, y + umulh hi, x, y + ; +r (hi) + +r (lo) + ; r (x) + r (y) + ; cc } + return hi, lo } // mul_add_64 returns the 128-bit result of x * y + z: (hi, lo) = x * y + z @@ -33,23 +29,19 @@ pub fn mul_64(x u64, y u64) (u64, u64) { // half returned in lo. @[inline] pub fn mul_add_64(x u64, y u64, z u64) (u64, u64) { - $if android { - return mul_add_64_default(x, y, z) - } $else { - mut hi := u64(0) - mut lo := u64(0) - asm arm64 { - mul lo, x, y - umulh hi, x, y - adds lo, lo, z - adc hi, hi, xzr - ; =r (hi) - =r (lo) - ; r (x) - r (y) - r (z) - ; cc - } - return hi, lo + mut hi := u64(0) + mut lo := u64(0) + asm arm64 { + mul lo, x, y + umulh hi, x, y + adds lo, lo, z + adc hi, hi, xzr + ; +r (hi) + +r (lo) + ; r (x) + r (y) + r (z) + ; cc } + return hi, lo }