27 lines
655 B
Text
27 lines
655 B
Text
|
Prevent multiple evaluation of macro argument.
|
||
|
|
||
|
Index: fixed.h
|
||
|
--- fixed.h.orig
|
||
|
+++ fixed.h
|
||
|
@@ -358,15 +358,15 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_
|
||
|
* significant bit depends on OPT_ACCURACY via mad_f_scale64().
|
||
|
*/
|
||
|
# define MAD_F_MLX(hi, lo, x, y) \
|
||
|
- do { \
|
||
|
+ ({ mad_fixed_t __x = (x); \
|
||
|
+ mad_fixed_t __y = (y); \
|
||
|
asm ("mullw %0,%1,%2" \
|
||
|
: "=r" (lo) \
|
||
|
- : "%r" (x), "r" (y)); \
|
||
|
+ : "%r" (__x), "r" (__y)); \
|
||
|
asm ("mulhw %0,%1,%2" \
|
||
|
: "=r" (hi) \
|
||
|
- : "%r" (x), "r" (y)); \
|
||
|
- } \
|
||
|
- while (0)
|
||
|
+ : "%r" (__x), "r" (__y)); \
|
||
|
+ })
|
||
|
|
||
|
# if defined(OPT_ACCURACY)
|
||
|
/*
|