diff options
author | Anton Blanchard <anton@samba.org> | 2005-09-06 13:05:58 +1000 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-09-06 16:07:53 +1000 |
commit | b2c0ab17ba751abe13a28508b1ac7e9ca074cd87 (patch) | |
tree | 08abcde7f48b3393afcae069e3668923ee3e4492 /include/asm-mips/ip32 | |
parent | 4721e2214b5fd6eca48caea76afb1bad3148930f (diff) | |
download | blackbird-op-linux-b2c0ab17ba751abe13a28508b1ac7e9ca074cd87.tar.gz blackbird-op-linux-b2c0ab17ba751abe13a28508b1ac7e9ca074cd87.zip |
[PATCH] ppc64: speedup cmpxchg
cmpxchg has the following code:
__typeof__(*(ptr)) _o_ = (o);
__typeof__(*(ptr)) _n_ = (n);
Unfortunately it makes gcc 4.0 store and load the variables to the stack.
Eg in atomic_dec_and_test we get:
stw r10,112(r1)
stw r9,116(r1)
lwz r9,112(r1)
lwz r0,116(r1)
x86 is just casting the values so do that instead. Also change __xchg*
and __cmpxchg* to take unsigned values, removing a few sign extensions.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include/asm-mips/ip32')
0 files changed, 0 insertions, 0 deletions