[S390] Fix __ffs_word_loop/__ffz_word_loop inlnie assembly.
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Sat, 9 Feb 2008 17:24:29 +0000 (18:24 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Sat, 9 Feb 2008 17:24:37 +0000 (18:24 +0100)
The black art of inline assemblies.. The new __ffs_word_loop/
__ffz_word_loop inline assemblies need an early clobber for the
two input/output variables.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
include/asm-s390/bitops.h

index 882db054110cbe9f8c7487e6dfe89cdc0647776e..ab83c844d04c106ad216f2c4c2d78243e470e5cb 100644 (file)
@@ -472,7 +472,7 @@ static inline unsigned long __ffz_word_loop(const unsigned long *addr,
                "       brct    %1,0b\n"
                "1:\n"
 #endif
-               : "+a" (bytes), "+d" (size)
+               : "+&a" (bytes), "+&d" (size)
                : "d" (-1UL), "a" (addr), "m" (*(addrtype *) addr)
                : "cc" );
        return bytes;
@@ -507,7 +507,7 @@ static inline unsigned long __ffs_word_loop(const unsigned long *addr,
                "       brct    %1,0b\n"
                "1:\n"
 #endif
-               : "+a" (bytes), "+a" (size)
+               : "+&a" (bytes), "+&a" (size)
                : "d" (0UL), "a" (addr), "m" (*(addrtype *) addr)
                : "cc" );
        return bytes;