Re: [PATCH] Adjust arch/powerpc inline asms for recent gcc change

2010-07-30 Thread Benjamin Herrenschmidt
On Thu, 2010-07-08 at 16:08 +1000, Benjamin Herrenschmidt wrote: On Fri, 2010-06-25 at 11:56 +0200, Jakub Jelinek wrote: static inline void sync(void) diff --git a/arch/powerpc/include/asm/atomic.h b/arch/powerpc/include/asm/atomic.h index b8f152e..288d8b2 100644 ---

Re: [PATCH] Adjust arch/powerpc inline asms for recent gcc change

2010-07-30 Thread Jakub Jelinek
On Fri, Jul 30, 2010 at 05:04:46PM +1000, Benjamin Herrenschmidt wrote: On Thu, 2010-07-08 at 16:08 +1000, Benjamin Herrenschmidt wrote: On Fri, 2010-06-25 at 11:56 +0200, Jakub Jelinek wrote: static inline void sync(void) diff --git a/arch/powerpc/include/asm/atomic.h

Re: [PATCH] Adjust arch/powerpc inline asms for recent gcc change

2010-07-30 Thread Benjamin Herrenschmidt
On Fri, 2010-07-30 at 09:19 +0200, Jakub Jelinek wrote: So, in short, I'm afraid m needs to be used only for GCC 4.6+ (and, vendors which backported the inline-asm handling changes to their older gcc would need to adjust for their gccs too). When m isn't used, it just leads to potential code

Re: [PATCH] Adjust arch/powerpc inline asms for recent gcc change

2010-07-08 Thread Benjamin Herrenschmidt
On Fri, 2010-06-25 at 11:56 +0200, Jakub Jelinek wrote: static inline void sync(void) diff --git a/arch/powerpc/include/asm/atomic.h b/arch/powerpc/include/asm/atomic.h index b8f152e..288d8b2 100644 --- a/arch/powerpc/include/asm/atomic.h +++ b/arch/powerpc/include/asm/atomic.h @@ -19,14

Re: [PATCH] Adjust arch/powerpc inline asms for recent gcc change

2010-06-30 Thread Benjamin Herrenschmidt
On Fri, 2010-06-25 at 13:18 +0200, Jakub Jelinek wrote: On Fri, Jun 25, 2010 at 01:08:23PM +0200, Segher Boessenkool wrote: - stw%U0%X0 %L2,%1 - : =m (*ptep), =m (*((unsigned char *)ptep+4)) + stw%U1%X1 %L2,%1 + : =m (*ptep), =m (*((unsigned char *)ptep+4)) : r

Re: [PATCH] Adjust arch/powerpc inline asms for recent gcc change

2010-06-30 Thread Segher Boessenkool
- stw%U0%X0 %L2,%1 - : =m (*ptep), =m (*((unsigned char *)ptep+4)) + stw%U1%X1 %L2,%1 + : =m (*ptep), =m (*((unsigned char *)ptep+4)) : r (pte) : memory); This still isn't correct -- the constraint says that a byte is written, but the insn changes

[PATCH] Adjust arch/powerpc inline asms for recent gcc change

2010-06-25 Thread Jakub Jelinek
Hi! I've recently changed gcc handling of inline-asm, such that it by default disallows side-effects on memory operands of inline-asm and only allows them if or constraint is present for the operand. See http://gcc.gnu.org/PR44492 and http://bugzilla.redhat.com/602359 for details. The change

Re: [PATCH] Adjust arch/powerpc inline asms for recent gcc change

2010-06-25 Thread Segher Boessenkool
- stw%U0%X0 %L2,%1 - : =m (*ptep), =m (*((unsigned char *)ptep+4)) + stw%U1%X1 %L2,%1 + : =m (*ptep), =m (*((unsigned char *)ptep+4)) : r (pte) : memory); This still isn't correct -- the constraint says that a byte is written, but the insn changes a

Re: [PATCH] Adjust arch/powerpc inline asms for recent gcc change

2010-06-25 Thread Jakub Jelinek
On Fri, Jun 25, 2010 at 01:08:23PM +0200, Segher Boessenkool wrote: - stw%U0%X0 %L2,%1 - : =m (*ptep), =m (*((unsigned char *)ptep+4)) + stw%U1%X1 %L2,%1 + : =m (*ptep), =m (*((unsigned char *)ptep+4)) : r (pte) : memory); This still isn't correct -- the