Re: xchg and GCC's optimisation:-(

From: Jan-Benedict Glaw (jbglaw@microdata-pos.de)
Date: Mon Dec 17 2001 - 08:55:52 EST


On Mon, Dec 17, 2001 at 03:18:45PM +0200, Momchil Velikov wrote:
> >>>>> "Jan-Benedict" == Jan-Benedict Glaw <jbglaw@microdata-pos.de> writes:
> Jan-Benedict> I've looked at ./include/asm-i386/system.h which does some black
> Jan-Benedict> magic with it, and I don't really understand that. However, the
> Jan-Benedict> result is that the xchg gets optimized away, rendering at least
>
> Can you try with this patch ...
>
> --- system.h.orig.0 Mon Dec 17 15:03:38 2001
> +++ system.h Mon Dec 17 15:16:58 2001
> @@ -205,21 +205,15 @@ static inline unsigned long __xchg(unsig
> switch (size) {
> case 1:
> __asm__ __volatile__("xchgb %b0,%1"
> - :"=q" (x)
> - :"m" (*__xg(ptr)), "0" (x)
> - :"memory");
> + :"+q" (x),"=m" (*__xg(ptr)));
[...]

The patch fixes the problem. Please also send it for inclusion
in 2.2.x, 2.4.x and 2.5.x, because these kernel version will behave
exactly the same (system.h looks very similar between all these
versions...)

MfG, JBG

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Dec 23 2001 - 21:00:13 EST