Re: Semaphore assembly-code bug

From: linux-os
Date: Fri Oct 29 2004 - 13:33:07 EST


On Fri, 29 Oct 2004, Richard Henderson wrote:

On Fri, Oct 29, 2004 at 01:22:52PM -0400, linux-os wrote:
Here's a version that uses `leal 4(esp), esp` to add
4 to the stack-pointer. Since this 'address-calculation`
is done in an different portion of Intel CPUs....

Incorrect, at least i686 and beyond. These interpret to the
same micro-ops.

The 'pop ecx' would access memory and, therefore be slower than
simple register operations.

Also not necessarily correct. Intel cpus special-case pop
instructions; two pops can be dual issued, whereas a different
kind of stack pointer manipulation will not.


Then I guess the Intel documentation is incorrect, too.

Cheers,
Dick Johnson
Penguin : Linux version 2.6.9 on an i686 machine (5537.79 BogoMips).
Notice : All mail here is now cached for review by John Ashcroft.
98.36% of all statistics are fiction.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/