On 07/09/2010 02:36 PM, Jeppe Johansen wrote:
Cortex A8 runs ARMv7A. All the Interlocked* functions in the ARM RTL
already have implementations for ARMv6 instructions(ldrex/strex) which
is pretty much what the architecture manual wrote as example code
I do know this. But as at compile time the compiler (person) can't know
on what sub-arch the user (person) will run the program he can't tell
the compiler (program) for which sub-arch to create the binary. So he
likely will use the default setting which is ARMv5 and does not use the
"modern" atomic-supporting instructions.
That is why the Linux Kernel community provides us with this common page
providing "interlocked" ("atomic" in Linux-language) userland Functions
automatically optimized appropriately. It would be a real shame not to
take advantage of this in a Linux environment. I feel using these
function is really easy and will not even need ASM (just calling a
function at a fixed address).
-Michael
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel