diff options
author | gregames <gregames@13f79535-47bb-0310-9956-ffa450edef68> | 2003-12-05 20:15:32 +0000 |
---|---|---|
committer | gregames <gregames@13f79535-47bb-0310-9956-ffa450edef68> | 2003-12-05 20:15:32 +0000 |
commit | 77bf0dd6423e737d11d4deb3cffe441a57dff24e (patch) | |
tree | 7c068111efa9fedbb4888805fb1e4ffc07494dbe /atomic | |
parent | 9a9d8b744dfeb517b3f9c9d6bcba5f3d008267c1 (diff) | |
download | libapr-77bf0dd6423e737d11d4deb3cffe441a57dff24e.tar.gz |
intel_atomic_add32: re-specify asm inputs and outputs, after RTFMing and
Googling
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64815 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'atomic')
-rw-r--r-- | atomic/unix/apr_atomic.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/atomic/unix/apr_atomic.c b/atomic/unix/apr_atomic.c index d596ab7e6..19dc3e9e7 100644 --- a/atomic/unix/apr_atomic.c +++ b/atomic/unix/apr_atomic.c @@ -108,10 +108,11 @@ APR_DECLARE(apr_uint32_t) apr_atomic_cas32(volatile apr_uint32_t *mem, static apr_uint32_t inline intel_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val) { - asm volatile ("lock; xaddl %1, (%2)" - : "=r"(val) /* output, same as 1st input */ - : "0"(val), "r"(mem) /* inputs */ - : "%1","memory"); /* tell gcc they are clobbered */ + asm volatile ("lock; xaddl %0,%1" + : "+r"(val), "+m"(*mem) /* outputs and inputs */ + : + : "memory"); /*XXX is this needed? it knows that + *mem is an output */ return val; } |