[Vm-dev] [commit][3683]
And get the inline asm version of sqCompareAndSwap to compile under gcc 3.
x
commits at squeakvm.org
commits at squeakvm.org
Sat Apr 23 04:24:29 UTC 2016
Revision: 3683
Author: eliot
Date: 2016-04-22 21:24:29 -0700 (Fri, 22 Apr 2016)
Log Message:
-----------
And get the inline asm version of sqCompareAndSwap to compile under gcc 3.x
Modified Paths:
--------------
branches/Cog/platforms/Cross/vm/sqAtomicOps.h
Property Changed:
----------------
branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Modified: branches/Cog/platforms/Cross/vm/sqAtomicOps.h
===================================================================
--- branches/Cog/platforms/Cross/vm/sqAtomicOps.h 2016-04-23 03:23:49 UTC (rev 3682)
+++ branches/Cog/platforms/Cross/vm/sqAtomicOps.h 2016-04-23 04:24:29 UTC (rev 3683)
@@ -244,12 +244,13 @@
sete %%al;movzbl %%al,%%eax
* can be used to set al based on the condition code & extend it to 32-bits.
*/
-# define sqCompareAndSwap(var,old,new) \
- (assert(sizeof(var) == 4), \
- asm volatile ("movl %1, %%eax; lock cmpxchg %2, %0"\
+# define sqCompareAndSwap(var,old,new) do { \
+ assert(sizeof(var) == 4); \
+ asm volatile ("movl %1, %%eax; lock cmpxchg %2, %0"\
: "=m"(var) \
: "g"(old), "r"(new), "m"(var) \
- : "memory", "%eax"))
+ : "memory", "%eax"); \
+ } while (0)
# endif
#else
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
- Fri Apr 22 20:22:44 PDT 2016
+ Fri Apr 22 21:23:28 PDT 2016
More information about the Vm-dev
mailing list