2008-02-09 12:04:32

by Martin Schwidefsky

[permalink] [raw]
Subject: [patch 03/11] Fix __ffs_word_loop/__ffz_word_loop inlnie assembly.

From: Martin Schwidefsky <[email protected]>

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 <[email protected]>
---

include/asm-s390/bitops.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Index: quilt-2.6/include/asm-s390/bitops.h
===================================================================
--- quilt-2.6.orig/include/asm-s390/bitops.h
+++ quilt-2.6/include/asm-s390/bitops.h
@@ -472,7 +472,7 @@ static inline unsigned long __ffz_word_l
" 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_l
" 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;

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.