summaryrefslogtreecommitdiff
blob: b768218825ad9cb71b0a239f6192f50a3f630dc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
diff --git a/fixed.h b/fixed.h
index 4b58abf..1764290 100644
--- a/fixed.h
+++ b/fixed.h
@@ -304,9 +304,10 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y)
  * significant bit depends on OPT_ACCURACY via mad_f_scale64().
  */
 #  define MAD_F_MLX(hi, lo, x, y)  \
-    asm ("mult	%2,%3"  \
-	 : "=l" (lo), "=h" (hi)  \
-	 : "%r" (x), "r" (y))
+    do { \
+       hi = ((long long) x * y) >> 32; \
+       lo = x * y; \
+    } while (0)
 
 # if defined(HAVE_MADD_ASM)
 #  define MAD_F_MLA(hi, lo, x, y)  \