--- a/longlong.h
+++ b/longlong.h
@@ -994,8 +994,10 @@ extern UWtype __MPN(udiv_qrnnd) _PROTO (
    count is only an int. */
 #define count_trailing_zeros(count, x)					\
   do {									\
+    UDItype __cbtmp;							\
     ASSERT ((x) != 0);							\
-    __asm__ ("bsfq %1,%q0" : "=r" (count) : "rm" ((UDItype)(x)));	\
+    __asm__ ("bsfq %1,%0" : "=r" (__cbtmp) : "rm" ((UDItype)(x)));	\
+    (count) = __cbtmp;						\
   } while (0)
 #endif /* x86_64 */