On Wed, Mar 07, 2007 at 00:24:35 +0200, Sami Farin wrote: > On Tue, Mar 06, 2007 at 23:53:49 +0200, Sami Farin wrote: > ... > > And I found bug in gcc-4.1.2, it gave 0 for ncubic results > > when doing 1000 loops test... gcc-4.0.3 works. > > Found it. > > --- cbrt-test.c~ 2007-03-07 00:20:54.735248105 +0200 > +++ cbrt-test.c 2007-03-07 00:21:03.964864343 +0200 > @@ -209,7 +209,7 @@ > > __asm__("bsrl %1,%0\n\t" > "cmovzl %2,%0" > - : "=&r" (r) : "rm" (x), "rm" (-1)); > + : "=&r" (r) : "rm" (x), "rm" (-1) : "memory"); > return r+1; > } > > Now Linux 2.6 does not have "memory" in fls, maybe it causes > some gcc funnies some people are seeing.
It also works without "memory" if I do "__asm__ volatile". Why some functions have volatile and some have not in include/asm-*/*.h ? -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/