summaryrefslogtreecommitdiff
path: root/atomic
diff options
context:
space:
mode:
authorgregames <gregames@13f79535-47bb-0310-9956-ffa450edef68>2003-12-05 20:15:32 +0000
committergregames <gregames@13f79535-47bb-0310-9956-ffa450edef68>2003-12-05 20:15:32 +0000
commit77bf0dd6423e737d11d4deb3cffe441a57dff24e (patch)
tree7c068111efa9fedbb4888805fb1e4ffc07494dbe /atomic
parent9a9d8b744dfeb517b3f9c9d6bcba5f3d008267c1 (diff)
downloadlibapr-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.c9
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;
}