aboutsummaryrefslogtreecommitdiffstats
path: root/erts/aclocal.m4
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2016-02-22 19:20:35 +0100
committerRickard Green <[email protected]>2016-02-22 19:20:35 +0100
commit3ac4a18199b9f35224624851b01a0d3cb6e8e0e1 (patch)
tree777ddb16e86fb75123607cc73ce750992427edcf /erts/aclocal.m4
parentd14f2d178d8abcaebd5b14e25ca8ac9a71775271 (diff)
parenteb59e961ae05048ea30362aafb7f91db26ceb939 (diff)
downloadotp-3ac4a18199b9f35224624851b01a0d3cb6e8e0e1.tar.gz
otp-3ac4a18199b9f35224624851b01a0d3cb6e8e0e1.tar.bz2
otp-3ac4a18199b9f35224624851b01a0d3cb6e8e0e1.zip
Merge branch 'rickard/dw-cmpxchg-clang/OTP-13336' into maint
* rickard/dw-cmpxchg-clang/OTP-13336: Improve cmpxchg8b/cmpxchg16b inline asm
Diffstat (limited to 'erts/aclocal.m4')
-rw-r--r--erts/aclocal.m424
1 files changed, 12 insertions, 12 deletions
diff --git a/erts/aclocal.m4 b/erts/aclocal.m4
index 3db6ff5b4c..ec9b66bf29 100644
--- a/erts/aclocal.m4
+++ b/erts/aclocal.m4
@@ -2157,8 +2157,8 @@ case "$GCC-$host_cpu" in
"lock; cmpxchg16b %0\n\t"
#endif
"setz %3\n\t"
- : "=m"(*p), "=d"(xchg[1]), "=a"(xchg[0]), "=c"(xchgd)
- : "m"(*p), "1"(xchg[1]), "2"(xchg[0]), "3"(new[1]), "b"(new[0])
+ : "=m"(*p), "=d"(xchg[1]), "=a"(xchg[0]), "=q"(xchgd)
+ : "m"(*p), "1"(xchg[1]), "2"(xchg[0]), "c"(new[1]), "b"(new[0])
: "cc", "memory");
],
[plain_cmpxchg=yes])
@@ -2217,8 +2217,8 @@ case "$GCC-$host_cpu" in
"lock; cmpxchg8b %0\n\t"
"setz %3\n\t"
"popl %%ebx\n\t"
- : "=m"(*p), "=d"(xchg[1]), "=a"(xchg[0]), "=c"(xchgd)
- : "m"(*p), "1"(xchg[1]), "2"(xchg[0]), "3"(new[1]), "r"(new[0])
+ : "=m"(*p), "=d"(xchg[1]), "=a"(xchg[0]), "=q"(xchgd)
+ : "m"(*p), "1"(xchg[1]), "2"(xchg[0]), "c"(new[1]), "r"(new[0])
: "cc", "memory");
],
[gcc_pic_dw_cmpxchg_asm=yes
@@ -2238,14 +2238,14 @@ case "$GCC-$host_cpu" in
char xchgd;
long new[2], xchg[2], *p;
__asm__ __volatile__(
- "pushl %%ebx\n\t"
- "movl (%7), %%ebx\n\t"
- "movl 4(%7), %%ecx\n\t"
- "lock; cmpxchg8b %0\n\t"
- "setz %3\n\t"
- "popl %%ebx\n\t"
- : "=m"(*p), "=d"(xchg[1]), "=a"(xchg[0]), "=c"(xchgd)
- : "m"(*p), "1"(xchg[1]), "2"(xchg[0]), "3"(new)
+ "pushl %%ebx\n\t"
+ "movl (%7), %%ebx\n\t"
+ "movl 4(%7), %%ecx\n\t"
+ "lock; cmpxchg8b %0\n\t"
+ "setz %3\n\t"
+ "popl %%ebx\n\t"
+ : "=m"(*p), "=d"(xchg[1]), "=a"(xchg[0]), "=c"(xchgd)
+ : "m"(*p), "1"(xchg[1]), "2"(xchg[0]), "r"(new)
: "cc", "memory");
],