Re: Pentium 4 and 2.4/2.5

From: Brian Pomerantz (bapper@piratehaven.org)
Date: Wed Nov 08 2000 - 13:29:06 EST


On Wed, Nov 08, 2000 at 06:21:54PM +0000, Alan Cox wrote:
> > > asm volatile("rep ; nop");
> > >
> > > (there's not much a "rep nop" _can_ do, after all - the most likely CPU
> > > extension would be to raise an "Illegal Opcode" fault).
> >
> > Just for the curious, this works on Athlons. :)
>
> What state does it leave the condition codes ? That matters.
>
> Take for example
>
> if (!oldval)
> asm volatile(
> "2:"
> "cmpl $-1, %0;"
> "rep; nop;"
> "je 2b;"
> : :"m" (current->need_resched));
> }
>
> When running SMP with poll_idle enabled. I can't see it changing condition
> codes on an athlon but..

Yup, that works as well. This example:

        int foo = -1;
        asm volatile(
                "2:"
                "cmpl $-1, %0;"
                "rep; nop;"
                "je 2b;"
                : :"m" (foo));

loops forever. If you set 'foo = 0' it drops out.

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



This archive was generated by hypermail 2b29 : Wed Nov 15 2000 - 21:00:12 EST