Messages in this thread |  | | Date | Wed, 8 Nov 2000 10:29:06 -0800 | From | Brian Pomerantz <> | Subject | Re: Pentium 4 and 2.4/2.5 |
| |
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/
|  |