"imull %3 \n\t"\
"shrdl %4, %%edx, %%eax \n\t"\
: "=a"(rt), "=d"(dummy)\
- : "a" ((int)ra), "rm" ((int)rb), "i"(shift));\
+ : "a" ((int)(ra)), "rm" ((int)(rb)), "i"(shift));\
rt; })
#define MULH(ra, rb) \
({ int rt, dummy;\
- __asm__ ("imull %3\n\t" : "=d"(rt), "=a"(dummy): "a" ((int)ra), "rm" ((int)rb));\
+ __asm__ ("imull %3\n\t" : "=d"(rt), "=a"(dummy): "a" ((int)(ra)), "rm" ((int)(rb)));\
rt; })
#define MUL64(ra, rb) \
({ int64_t rt;\
- __asm__ ("imull %2\n\t" : "=A"(rt) : "a" ((int)ra), "g" ((int)rb));\
+ __asm__ ("imull %2\n\t" : "=A"(rt) : "a" ((int)(ra)), "g" ((int)(rb)));\
rt; })
#endif