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 [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/