Fix powerpc uatomic 4-byte cmpxchg (cmpd -> cmpw)
[urcu.git] / urcu / uatomic_arch_ppc.h
index 39c4c2400113555519d8b3ce37d6db5cae710e4a..710ce054e86514093f45024c573fdd3e33f58230 100644 (file)
 extern "C" {
 #endif 
 
-#ifndef __SIZEOF_LONG__
-#ifdef __powerpc64__
-#define __SIZEOF_LONG__ 8
-#else
-#define __SIZEOF_LONG__ 4
-#endif
-#endif
-
 #ifdef __NO_LWSYNC__
 #define LWSYNC_OPCODE  "sync\n"
 #else
 #define LWSYNC_OPCODE  "lwsync\n"
 #endif
 
-#ifndef BITS_PER_LONG
-#define BITS_PER_LONG  (__SIZEOF_LONG__ * 8)
-#endif
-
 #define ILLEGAL_INSTR  ".long  0xd00d00"
 
 /*
@@ -118,7 +106,7 @@ unsigned long _uatomic_cmpxchg(void *addr, unsigned long old,
                __asm__ __volatile__(
                        LWSYNC_OPCODE
                "1:\t"  "lwarx %0,0,%1\n"       /* load and reserve */
-                       "cmpd %0,%3\n"          /* if load is not equal to */
+                       "cmpw %0,%3\n"          /* if load is not equal to */
                        "bne 2f\n"              /* old, fail */
                        "stwcx. %2,0,%1\n"      /* else store conditional */
                        "bne- 1b\n"             /* retry if lost reservation */
This page took 0.024451 seconds and 4 git commands to generate.