patches/glibc/ports-2.12.1/560-ppc-atomic.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed May 18 23:00:46 2011 +0200 (2011-05-18)
changeset 2467 200836977ce6
permissions -rw-r--r--
config: rename variables that are arrays

Make it explicit that a variable is an array bu the name of the variable.
It will be used later when .config gets munged to allow both multiple
arguments and arguments with spaces at the same time to be passed from the
configuration down to the build scripts.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@2437
     1
sniped from suse
yann@2437
     2
yann@2437
     3
Index: sysdeps/powerpc/bits/atomic.h
yann@2437
     4
===================================================================
yann@2437
     5
RCS file: /cvs/glibc/libc/sysdeps/powerpc/bits/atomic.h,v
yann@2437
     6
retrieving revision 1.17
yann@2437
     7
diff -u -a -p -r1.17 atomic.h
yann@2437
     8
yann@2437
     9
diff -durN glibc-2.12.1.orig/sysdeps/powerpc/bits/atomic.h glibc-2.12.1/sysdeps/powerpc/bits/atomic.h
yann@2437
    10
--- glibc-2.12.1.orig/sysdeps/powerpc/bits/atomic.h	2007-03-26 22:15:28.000000000 +0200
yann@2437
    11
+++ glibc-2.12.1/sysdeps/powerpc/bits/atomic.h	2009-11-13 00:51:19.000000000 +0100
yann@2437
    12
@@ -85,14 +85,14 @@
yann@2437
    13
       __typeof (*(mem)) __tmp;						      \
yann@2437
    14
       __typeof (mem)  __memp = (mem);					      \
yann@2437
    15
       __asm __volatile (						      \
yann@2437
    16
-		        "1:	lwarx	%0,0,%1" MUTEX_HINT_ACQ "\n"	      \
yann@2437
    17
+		        "1:	lwarx	%0,%y1" MUTEX_HINT_ACQ "\n"	      \
yann@2437
    18
 		        "	cmpw	%0,%2\n"			      \
yann@2437
    19
 		        "	bne	2f\n"				      \
yann@2437
    20
-		        "	stwcx.	%3,0,%1\n"			      \
yann@2437
    21
+		        "	stwcx.	%3,%y1\n"			      \
yann@2437
    22
 		        "	bne-	1b\n"				      \
yann@2437
    23
 		        "2:	" __ARCH_ACQ_INSTR			      \
yann@2437
    24
-		        : "=&r" (__tmp)					      \
yann@2437
    25
-		        : "b" (__memp), "r" (oldval), "r" (newval)	      \
yann@2437
    26
+		        : "=&r" (__tmp), "+Z" (*__memp)			      \
yann@2437
    27
+		        : "r" (oldval), "r" (newval)			      \
yann@2437
    28
 		        : "cr0", "memory");				      \
yann@2437
    29
       __tmp;								      \
yann@2437
    30
   })
yann@2437
    31
@@ -102,14 +102,14 @@
yann@2437
    32
       __typeof (*(mem)) __tmp;						      \
yann@2437
    33
       __typeof (mem)  __memp = (mem);					      \
yann@2437
    34
       __asm __volatile (__ARCH_REL_INSTR "\n"				      \
yann@2437
    35
-		        "1:	lwarx	%0,0,%1" MUTEX_HINT_REL "\n"	      \
yann@2437
    36
+		        "1:	lwarx	%0,%y1" MUTEX_HINT_REL "\n"	      \
yann@2437
    37
 		        "	cmpw	%0,%2\n"			      \
yann@2437
    38
 		        "	bne	2f\n"				      \
yann@2437
    39
-		        "	stwcx.	%3,0,%1\n"			      \
yann@2437
    40
+		        "	stwcx.	%3,%y1\n"			      \
yann@2437
    41
 		        "	bne-	1b\n"				      \
yann@2437
    42
 		        "2:	"					      \
yann@2437
    43
-		        : "=&r" (__tmp)					      \
yann@2437
    44
-		        : "b" (__memp), "r" (oldval), "r" (newval)	      \
yann@2437
    45
+		        : "=&r" (__tmp), "+Z" (__memp)			      \
yann@2437
    46
+		        : "r" (oldval), "r" (newval)			      \
yann@2437
    47
 		        : "cr0", "memory");				      \
yann@2437
    48
       __tmp;								      \
yann@2437
    49
   })
yann@2437
    50
@@ -118,12 +118,12 @@
yann@2437
    51
   ({									      \
yann@2437
    52
     __typeof (*mem) __val;						      \
yann@2437
    53
     __asm __volatile (							      \
yann@2437
    54
-		      "1:	lwarx	%0,0,%2" MUTEX_HINT_ACQ "\n"	      \
yann@2437
    55
-		      "		stwcx.	%3,0,%2\n"			      \
yann@2437
    56
+		      "1:	lwarx	%0,%y1" MUTEX_HINT_ACQ "\n"	      \
yann@2437
    57
+		      "		stwcx.	%2,%y1\n"			      \
yann@2437
    58
 		      "		bne-	1b\n"				      \
yann@2437
    59
 		      "   " __ARCH_ACQ_INSTR				      \
yann@2437
    60
-		      : "=&r" (__val), "=m" (*mem)			      \
yann@2437
    61
-		      : "b" (mem), "r" (value), "m" (*mem)		      \
yann@2437
    62
+		      : "=&r" (__val), "+Z" (*mem)			      \
yann@2437
    63
+		      : "r" (value)					      \
yann@2437
    64
 		      : "cr0", "memory");				      \
yann@2437
    65
     __val;								      \
yann@2437
    66
   })
yann@2437
    67
@@ -132,11 +132,11 @@
yann@2437
    68
   ({									      \
yann@2437
    69
     __typeof (*mem) __val;						      \
yann@2437
    70
     __asm __volatile (__ARCH_REL_INSTR "\n"				      \
yann@2437
    71
-		      "1:	lwarx	%0,0,%2" MUTEX_HINT_REL "\n"	      \
yann@2437
    72
-		      "		stwcx.	%3,0,%2\n"			      \
yann@2437
    73
+		      "1:	lwarx	%0,%y1" MUTEX_HINT_REL "\n"	      \
yann@2437
    74
+		      "		stwcx.	%2,%y1\n"			      \
yann@2437
    75
 		      "		bne-	1b"				      \
yann@2437
    76
-		      : "=&r" (__val), "=m" (*mem)			      \
yann@2437
    77
-		      : "b" (mem), "r" (value), "m" (*mem)		      \
yann@2437
    78
+		      : "=&r" (__val), "+Z" (*mem)			      \
yann@2437
    79
+		      : "r" (value)					      \
yann@2437
    80
 		      : "cr0", "memory");				      \
yann@2437
    81
     __val;								      \
yann@2437
    82
   })
yann@2437
    83
@@ -144,12 +144,12 @@
yann@2437
    84
 #define __arch_atomic_exchange_and_add_32(mem, value) \
yann@2437
    85
   ({									      \
yann@2437
    86
     __typeof (*mem) __val, __tmp;					      \
yann@2437
    87
-    __asm __volatile ("1:	lwarx	%0,0,%3\n"			      \
yann@2437
    88
-		      "		add	%1,%0,%4\n"			      \
yann@2437
    89
-		      "		stwcx.	%1,0,%3\n"			      \
yann@2437
    90
+    __asm __volatile ("1:	lwarx	%0,%y2\n"			      \
yann@2437
    91
+		      "		add	%1,%0,%3\n"			      \
yann@2437
    92
+		      "		stwcx.	%1,%y2\n"			      \
yann@2437
    93
 		      "		bne-	1b"				      \
yann@2437
    94
-		      : "=&b" (__val), "=&r" (__tmp), "=m" (*mem)	      \
yann@2437
    95
-		      : "b" (mem), "r" (value), "m" (*mem)		      \
yann@2437
    96
+		      : "=&b" (__val), "=&r" (__tmp), "+Z" (*mem)	      \
yann@2437
    97
+		      : "r" (value)					      \
yann@2437
    98
 		      : "cr0", "memory");				      \
yann@2437
    99
     __val;								      \
yann@2437
   100
   })
yann@2437
   101
@@ -157,12 +157,12 @@
yann@2437
   102
 #define __arch_atomic_increment_val_32(mem) \
yann@2437
   103
   ({									      \
yann@2437
   104
     __typeof (*(mem)) __val;						      \
yann@2437
   105
-    __asm __volatile ("1:	lwarx	%0,0,%2\n"			      \
yann@2437
   106
+    __asm __volatile ("1:	lwarx	%0,%y1\n"			      \
yann@2437
   107
 		      "		addi	%0,%0,1\n"			      \
yann@2437
   108
-		      "		stwcx.	%0,0,%2\n"			      \
yann@2437
   109
+		      "		stwcx.	%0,%y1\n"			      \
yann@2437
   110
 		      "		bne-	1b"				      \
yann@2437
   111
-		      : "=&b" (__val), "=m" (*mem)			      \
yann@2437
   112
-		      : "b" (mem), "m" (*mem)				      \
yann@2437
   113
+		      : "=&b" (__val), "+Z" (*mem)			      \
yann@2437
   114
+		      :							      \
yann@2437
   115
 		      : "cr0", "memory");				      \
yann@2437
   116
     __val;								      \
yann@2437
   117
   })
yann@2437
   118
@@ -170,27 +170,27 @@
yann@2437
   119
 #define __arch_atomic_decrement_val_32(mem) \
yann@2437
   120
   ({									      \
yann@2437
   121
     __typeof (*(mem)) __val;						      \
yann@2437
   122
-    __asm __volatile ("1:	lwarx	%0,0,%2\n"			      \
yann@2437
   123
+    __asm __volatile ("1:	lwarx	%0,%y1\n"			      \
yann@2437
   124
 		      "		subi	%0,%0,1\n"			      \
yann@2437
   125
-		      "		stwcx.	%0,0,%2\n"			      \
yann@2437
   126
+		      "		stwcx.	%0,%y1\n"			      \
yann@2437
   127
 		      "		bne-	1b"				      \
yann@2437
   128
-		      : "=&b" (__val), "=m" (*mem)			      \
yann@2437
   129
-		      : "b" (mem), "m" (*mem)				      \
yann@2437
   130
+		      : "=&b" (__val), "+Z" (*mem)			      \
yann@2437
   131
+		      :							      \
yann@2437
   132
 		      : "cr0", "memory");				      \
yann@2437
   133
     __val;								      \
yann@2437
   134
   })
yann@2437
   135
 
yann@2437
   136
 #define __arch_atomic_decrement_if_positive_32(mem) \
yann@2437
   137
   ({ int __val, __tmp;							      \
yann@2437
   138
-     __asm __volatile ("1:	lwarx	%0,0,%3\n"			      \
yann@2437
   139
+     __asm __volatile ("1:	lwarx	%0,%y2\n"			      \
yann@2437
   140
 		       "	cmpwi	0,%0,0\n"			      \
yann@2437
   141
 		       "	addi	%1,%0,-1\n"			      \
yann@2437
   142
 		       "	ble	2f\n"				      \
yann@2437
   143
-		       "	stwcx.	%1,0,%3\n"			      \
yann@2437
   144
+		       "	stwcx.	%1,%y2\n"			      \
yann@2437
   145
 		       "	bne-	1b\n"				      \
yann@2437
   146
 		       "2:	" __ARCH_ACQ_INSTR			      \
yann@2437
   147
-		       : "=&b" (__val), "=&r" (__tmp), "=m" (*mem)	      \
yann@2437
   148
-		       : "b" (mem), "m" (*mem)				      \
yann@2437
   149
+		       : "=&b" (__val), "=&r" (__tmp), "+Z" (*mem)	      \
yann@2437
   150
+		       :						      \
yann@2437
   151
 		       : "cr0", "memory");				      \
yann@2437
   152
      __val;								      \
yann@2437
   153
   })
yann@2437
   154
diff -durN glibc-2.12.1.orig/sysdeps/powerpc/powerpc32/bits/atomic.h glibc-2.12.1/sysdeps/powerpc/powerpc32/bits/atomic.h
yann@2437
   155
--- glibc-2.12.1.orig/sysdeps/powerpc/powerpc32/bits/atomic.h	2007-03-26 22:15:45.000000000 +0200
yann@2437
   156
+++ glibc-2.12.1/sysdeps/powerpc/powerpc32/bits/atomic.h	2009-11-13 00:51:19.000000000 +0100
yann@2437
   157
@@ -44,14 +44,14 @@
yann@2437
   158
 ({									      \
yann@2437
   159
   unsigned int __tmp;							      \
yann@2437
   160
   __asm __volatile (							      \
yann@2437
   161
-		    "1:	lwarx	%0,0,%1" MUTEX_HINT_ACQ "\n"		      \
yann@2437
   162
+		    "1:	lwarx	%0,%y1" MUTEX_HINT_ACQ "\n"		      \
yann@2437
   163
 		    "	subf.	%0,%2,%0\n"				      \
yann@2437
   164
 		    "	bne	2f\n"					      \
yann@2437
   165
-		    "	stwcx.	%3,0,%1\n"				      \
yann@2437
   166
+		    "	stwcx.	%3,%y1\n"				      \
yann@2437
   167
 		    "	bne-	1b\n"					      \
yann@2437
   168
 		    "2:	" __ARCH_ACQ_INSTR				      \
yann@2437
   169
-		    : "=&r" (__tmp)					      \
yann@2437
   170
-		    : "b" (mem), "r" (oldval), "r" (newval)		      \
yann@2437
   171
+		    : "=&r" (__tmp), "+Z" (*(mem))			      \
yann@2437
   172
+		    : "r" (oldval), "r" (newval)			      \
yann@2437
   173
 		    : "cr0", "memory");					      \
yann@2437
   174
   __tmp != 0;								      \
yann@2437
   175
 })
yann@2437
   176
@@ -60,14 +60,14 @@
yann@2437
   177
 ({									      \
yann@2437
   178
   unsigned int __tmp;							      \
yann@2437
   179
   __asm __volatile (__ARCH_REL_INSTR "\n"				      \
yann@2437
   180
-		    "1:	lwarx	%0,0,%1" MUTEX_HINT_REL "\n"		      \
yann@2437
   181
+		    "1:	lwarx	%0,%y1" MUTEX_HINT_REL "\n"		      \
yann@2437
   182
 		    "	subf.	%0,%2,%0\n"				      \
yann@2437
   183
 		    "	bne	2f\n"					      \
yann@2437
   184
-		    "	stwcx.	%3,0,%1\n"				      \
yann@2437
   185
+		    "	stwcx.	%3,%y1\n"				      \
yann@2437
   186
 		    "	bne-	1b\n"					      \
yann@2437
   187
 		    "2:	"						      \
yann@2437
   188
-		    : "=&r" (__tmp)					      \
yann@2437
   189
-		    : "b" (mem), "r" (oldval), "r" (newval)		      \
yann@2437
   190
+		    : "=&r" (__tmp), "+Z" (*(mem))			      \
yann@2437
   191
+		    : "r" (oldval), "r" (newval)			      \
yann@2437
   192
 		    : "cr0", "memory");					      \
yann@2437
   193
   __tmp != 0;								      \
yann@2437
   194
 })
yann@2437
   195
diff -durN glibc-2.12.1.orig/sysdeps/powerpc/powerpc64/bits/atomic.h glibc-2.12.1/sysdeps/powerpc/powerpc64/bits/atomic.h
yann@2437
   196
--- glibc-2.12.1.orig/sysdeps/powerpc/powerpc64/bits/atomic.h	2007-03-26 22:16:03.000000000 +0200
yann@2437
   197
+++ glibc-2.12.1/sysdeps/powerpc/powerpc64/bits/atomic.h	2009-11-13 00:51:19.000000000 +0100
yann@2437
   198
@@ -44,14 +44,14 @@
yann@2437
   199
 ({									      \
yann@2437
   200
   unsigned int __tmp, __tmp2;						      \
yann@2437
   201
   __asm __volatile ("   clrldi  %1,%1,32\n"				      \
yann@2437
   202
-		    "1:	lwarx	%0,0,%2" MUTEX_HINT_ACQ "\n"	 	      \
yann@2437
   203
+		    "1:	lwarx	%0,%y2" MUTEX_HINT_ACQ "\n"	 	      \
yann@2437
   204
 		    "	subf.	%0,%1,%0\n"				      \
yann@2437
   205
 		    "	bne	2f\n"					      \
yann@2437
   206
-		    "	stwcx.	%4,0,%2\n"				      \
yann@2437
   207
+		    "	stwcx.	%4,%y2\n"				      \
yann@2437
   208
 		    "	bne-	1b\n"					      \
yann@2437
   209
 		    "2:	" __ARCH_ACQ_INSTR				      \
yann@2437
   210
-		    : "=&r" (__tmp), "=r" (__tmp2)			      \
yann@2437
   211
-		    : "b" (mem), "1" (oldval), "r" (newval)		      \
yann@2437
   212
+		    : "=&r" (__tmp), "=r" (__tmp2), "+Z" (*(mem))	      \
yann@2437
   213
+		    : "1" (oldval), "r" (newval)			      \
yann@2437
   214
 		    : "cr0", "memory");					      \
yann@2437
   215
   __tmp != 0;								      \
yann@2437
   216
 })
yann@2437
   217
@@ -61,14 +61,14 @@
yann@2437
   218
   unsigned int __tmp, __tmp2;						      \
yann@2437
   219
   __asm __volatile (__ARCH_REL_INSTR "\n"				      \
yann@2437
   220
 		    "   clrldi  %1,%1,32\n"				      \
yann@2437
   221
-		    "1:	lwarx	%0,0,%2" MUTEX_HINT_REL "\n"		      \
yann@2437
   222
+		    "1:	lwarx	%0,%y2" MUTEX_HINT_REL "\n"		      \
yann@2437
   223
 		    "	subf.	%0,%1,%0\n"				      \
yann@2437
   224
 		    "	bne	2f\n"					      \
yann@2437
   225
-		    "	stwcx.	%4,0,%2\n"				      \
yann@2437
   226
+		    "	stwcx.	%4,%y2\n"				      \
yann@2437
   227
 		    "	bne-	1b\n"					      \
yann@2437
   228
 		    "2:	"						      \
yann@2437
   229
-		    : "=&r" (__tmp), "=r" (__tmp2)			      \
yann@2437
   230
-		    : "b" (mem), "1" (oldval), "r" (newval)		      \
yann@2437
   231
+		    : "=&r" (__tmp), "=r" (__tmp2), "+Z" (*(mem))	      \
yann@2437
   232
+		    : "1" (oldval), "r" (newval)			      \
yann@2437
   233
 		    : "cr0", "memory");					      \
yann@2437
   234
   __tmp != 0;								      \
yann@2437
   235
 })
yann@2437
   236
@@ -82,14 +82,14 @@
yann@2437
   237
 ({									      \
yann@2437
   238
   unsigned long	__tmp;							      \
yann@2437
   239
   __asm __volatile (							      \
yann@2437
   240
-		    "1:	ldarx	%0,0,%1" MUTEX_HINT_ACQ "\n"		      \
yann@2437
   241
+		    "1:	ldarx	%0,%y1" MUTEX_HINT_ACQ "\n"		      \
yann@2437
   242
 		    "	subf.	%0,%2,%0\n"				      \
yann@2437
   243
 		    "	bne	2f\n"					      \
yann@2437
   244
-		    "	stdcx.	%3,0,%1\n"				      \
yann@2437
   245
+		    "	stdcx.	%3,%y1\n"				      \
yann@2437
   246
 		    "	bne-	1b\n"					      \
yann@2437
   247
 		    "2:	" __ARCH_ACQ_INSTR				      \
yann@2437
   248
-		    : "=&r" (__tmp)					      \
yann@2437
   249
-		    : "b" (mem), "r" (oldval), "r" (newval)		      \
yann@2437
   250
+		    : "=&r" (__tmp), "+Z" (*(mem))			      \
yann@2437
   251
+		    : "r" (oldval), "r" (newval)			      \
yann@2437
   252
 		    : "cr0", "memory");					      \
yann@2437
   253
   __tmp != 0;								      \
yann@2437
   254
 })
yann@2437
   255
@@ -98,14 +98,14 @@
yann@2437
   256
 ({									      \
yann@2437
   257
   unsigned long	__tmp;							      \
yann@2437
   258
   __asm __volatile (__ARCH_REL_INSTR "\n"				      \
yann@2437
   259
-		    "1:	ldarx	%0,0,%2" MUTEX_HINT_REL "\n"		      \
yann@2437
   260
+		    "1:	ldarx	%0,%y1" MUTEX_HINT_REL "\n"		      \
yann@2437
   261
 		    "	subf.	%0,%2,%0\n"				      \
yann@2437
   262
 		    "	bne	2f\n"					      \
yann@2437
   263
-		    "	stdcx.	%3,0,%1\n"				      \
yann@2437
   264
+		    "	stdcx.	%3,%y1\n"				      \
yann@2437
   265
 		    "	bne-	1b\n"					      \
yann@2437
   266
 		    "2:	"						      \
yann@2437
   267
-		    : "=&r" (__tmp)					      \
yann@2437
   268
-		    : "b" (mem), "r" (oldval), "r" (newval)		      \
yann@2437
   269
+		    : "=&r" (__tmp), "+Z" (*(mem))			      \
yann@2437
   270
+		    : "r" (oldval), "r" (newval)			      \
yann@2437
   271
 		    : "cr0", "memory");					      \
yann@2437
   272
   __tmp != 0;								      \
yann@2437
   273
 })
yann@2437
   274
@@ -115,14 +115,14 @@
yann@2437
   275
       __typeof (*(mem)) __tmp;						      \
yann@2437
   276
       __typeof (mem)  __memp = (mem);					      \
yann@2437
   277
       __asm __volatile (						      \
yann@2437
   278
-		        "1:	ldarx	%0,0,%1" MUTEX_HINT_ACQ "\n"	      \
yann@2437
   279
+		        "1:	ldarx	%0,%y1" MUTEX_HINT_ACQ "\n"	      \
yann@2437
   280
 		        "	cmpd	%0,%2\n"			      \
yann@2437
   281
 		        "	bne	2f\n"				      \
yann@2437
   282
-		        "	stdcx.	%3,0,%1\n"			      \
yann@2437
   283
+		        "	stdcx.	%3,%y1\n"			      \
yann@2437
   284
 		        "	bne-	1b\n"				      \
yann@2437
   285
 		        "2:	" __ARCH_ACQ_INSTR			      \
yann@2437
   286
-		        : "=&r" (__tmp)					      \
yann@2437
   287
-		        : "b" (__memp), "r" (oldval), "r" (newval)	      \
yann@2437
   288
+		        : "=&r" (__tmp), "+Z" (*__memp)			      \
yann@2437
   289
+		        : "r" (oldval), "r" (newval)			      \
yann@2437
   290
 		        : "cr0", "memory");				      \
yann@2437
   291
       __tmp;								      \
yann@2437
   292
   })
yann@2437
   293
@@ -132,14 +132,14 @@
yann@2437
   294
       __typeof (*(mem)) __tmp;						      \
yann@2437
   295
       __typeof (mem)  __memp = (mem);					      \
yann@2437
   296
       __asm __volatile (__ARCH_REL_INSTR "\n"				      \
yann@2437
   297
-		        "1:	ldarx	%0,0,%1" MUTEX_HINT_REL "\n"	      \
yann@2437
   298
+		        "1:	ldarx	%0,%y1" MUTEX_HINT_REL "\n"	      \
yann@2437
   299
 		        "	cmpd	%0,%2\n"			      \
yann@2437
   300
 		        "	bne	2f\n"				      \
yann@2437
   301
-		        "	stdcx.	%3,0,%1\n"			      \
yann@2437
   302
+		        "	stdcx.	%3,%y1\n"			      \
yann@2437
   303
 		        "	bne-	1b\n"				      \
yann@2437
   304
 		        "2:	"					      \
yann@2437
   305
-		        : "=&r" (__tmp)					      \
yann@2437
   306
-		        : "b" (__memp), "r" (oldval), "r" (newval)	      \
yann@2437
   307
+		        : "=&r" (__tmp), "+Z" (*__memp)			      \
yann@2437
   308
+		        : "r" (oldval), "r" (newval)			      \
yann@2437
   309
 		        : "cr0", "memory");				      \
yann@2437
   310
       __tmp;								      \
yann@2437
   311
   })
yann@2437
   312
@@ -148,12 +148,12 @@
yann@2437
   313
     ({									      \
yann@2437
   314
       __typeof (*mem) __val;						      \
yann@2437
   315
       __asm __volatile (__ARCH_REL_INSTR "\n"				      \
yann@2437
   316
-			"1:	ldarx	%0,0,%2" MUTEX_HINT_ACQ "\n"	      \
yann@2437
   317
-			"	stdcx.	%3,0,%2\n"			      \
yann@2437
   318
+			"1:	ldarx	%0,%y1" MUTEX_HINT_ACQ "\n"	      \
yann@2437
   319
+			"	stdcx.	%2,%y1\n"			      \
yann@2437
   320
 			"	bne-	1b\n"				      \
yann@2437
   321
 		  " " __ARCH_ACQ_INSTR					      \
yann@2437
   322
-			: "=&r" (__val), "=m" (*mem)			      \
yann@2437
   323
-			: "b" (mem), "r" (value), "m" (*mem)		      \
yann@2437
   324
+			: "=&r" (__val), "+Z" (*(mem))			      \
yann@2437
   325
+			: "r" (value)					      \
yann@2437
   326
 			: "cr0", "memory");				      \
yann@2437
   327
       __val;								      \
yann@2437
   328
     })
yann@2437
   329
@@ -162,11 +162,11 @@
yann@2437
   330
     ({									      \
yann@2437
   331
       __typeof (*mem) __val;						      \
yann@2437
   332
       __asm __volatile (__ARCH_REL_INSTR "\n"				      \
yann@2437
   333
-			"1:	ldarx	%0,0,%2" MUTEX_HINT_REL "\n"	      \
yann@2437
   334
-			"	stdcx.	%3,0,%2\n"			      \
yann@2437
   335
+			"1:	ldarx	%0,%y1" MUTEX_HINT_REL "\n"	      \
yann@2437
   336
+			"	stdcx.	%2,%y1\n"			      \
yann@2437
   337
 			"	bne-	1b"				      \
yann@2437
   338
-			: "=&r" (__val), "=m" (*mem)			      \
yann@2437
   339
-			: "b" (mem), "r" (value), "m" (*mem)		      \
yann@2437
   340
+			: "=&r" (__val), "+Z" (*(mem))			      \
yann@2437
   341
+			: "r" (value)					      \
yann@2437
   342
 			: "cr0", "memory");				      \
yann@2437
   343
       __val;								      \
yann@2437
   344
     })
yann@2437
   345
@@ -174,12 +174,12 @@
yann@2437
   346
 #define __arch_atomic_exchange_and_add_64(mem, value) \
yann@2437
   347
     ({									      \
yann@2437
   348
       __typeof (*mem) __val, __tmp;					      \
yann@2437
   349
-      __asm __volatile ("1:	ldarx	%0,0,%3\n"			      \
yann@2437
   350
-			"	add	%1,%0,%4\n"			      \
yann@2437
   351
-			"	stdcx.	%1,0,%3\n"			      \
yann@2437
   352
+      __asm __volatile ("1:	ldarx	%0,%y2\n"			      \
yann@2437
   353
+			"	add	%1,%0,%3\n"			      \
yann@2437
   354
+			"	stdcx.	%1,%y2\n"			      \
yann@2437
   355
 			"	bne-	1b"				      \
yann@2437
   356
-			: "=&b" (__val), "=&r" (__tmp), "=m" (*mem)	      \
yann@2437
   357
-			: "b" (mem), "r" (value), "m" (*mem)		      \
yann@2437
   358
+			: "=&b" (__val), "=&r" (__tmp), "+Z" (*(mem))	      \
yann@2437
   359
+			: "r" (value)					      \
yann@2437
   360
 			: "cr0", "memory");				      \
yann@2437
   361
       __val;								      \
yann@2437
   362
     })
yann@2437
   363
@@ -187,12 +187,12 @@
yann@2437
   364
 #define __arch_atomic_increment_val_64(mem) \
yann@2437
   365
     ({									      \
yann@2437
   366
       __typeof (*(mem)) __val;						      \
yann@2437
   367
-      __asm __volatile ("1:	ldarx	%0,0,%2\n"			      \
yann@2437
   368
+      __asm __volatile ("1:	ldarx	%0,%y1\n"			      \
yann@2437
   369
 			"	addi	%0,%0,1\n"			      \
yann@2437
   370
-			"	stdcx.	%0,0,%2\n"			      \
yann@2437
   371
+			"	stdcx.	%0,%y1\n"			      \
yann@2437
   372
 			"	bne-	1b"				      \
yann@2437
   373
-			: "=&b" (__val), "=m" (*mem)			      \
yann@2437
   374
-			: "b" (mem), "m" (*mem)				      \
yann@2437
   375
+			: "=&b" (__val), "+Z" (*(mem))			      \
yann@2437
   376
+			:						      \
yann@2437
   377
 			: "cr0", "memory");				      \
yann@2437
   378
       __val;								      \
yann@2437
   379
     })
yann@2437
   380
@@ -200,27 +200,27 @@
yann@2437
   381
 #define __arch_atomic_decrement_val_64(mem) \
yann@2437
   382
     ({									      \
yann@2437
   383
       __typeof (*(mem)) __val;						      \
yann@2437
   384
-      __asm __volatile ("1:	ldarx	%0,0,%2\n"			      \
yann@2437
   385
+      __asm __volatile ("1:	ldarx	%0,%y1\n"			      \
yann@2437
   386
 			"	subi	%0,%0,1\n"			      \
yann@2437
   387
-			"	stdcx.	%0,0,%2\n"			      \
yann@2437
   388
+			"	stdcx.	%0,%y1\n"			      \
yann@2437
   389
 			"	bne-	1b"				      \
yann@2437
   390
-			: "=&b" (__val), "=m" (*mem)			      \
yann@2437
   391
-			: "b" (mem), "m" (*mem)				      \
yann@2437
   392
+			: "=&b" (__val), "+Z" (*(mem))			      \
yann@2437
   393
+			:						      \
yann@2437
   394
 			: "cr0", "memory");				      \
yann@2437
   395
       __val;								      \
yann@2437
   396
     })
yann@2437
   397
 
yann@2437
   398
 #define __arch_atomic_decrement_if_positive_64(mem) \
yann@2437
   399
   ({ int __val, __tmp;							      \
yann@2437
   400
-     __asm __volatile ("1:	ldarx	%0,0,%3\n"			      \
yann@2437
   401
+     __asm __volatile ("1:	ldarx	%0,%y2\n"			      \
yann@2437
   402
 		       "	cmpdi	0,%0,0\n"			      \
yann@2437
   403
 		       "	addi	%1,%0,-1\n"			      \
yann@2437
   404
 		       "	ble	2f\n"				      \
yann@2437
   405
-		       "	stdcx.	%1,0,%3\n"			      \
yann@2437
   406
+		       "	stdcx.	%1,%y2\n"			      \
yann@2437
   407
 		       "	bne-	1b\n"				      \
yann@2437
   408
 		       "2:	" __ARCH_ACQ_INSTR			      \
yann@2437
   409
-		       : "=&b" (__val), "=&r" (__tmp), "=m" (*mem)	      \
yann@2437
   410
-		       : "b" (mem), "m" (*mem)				      \
yann@2437
   411
+		       : "=&b" (__val), "=&r" (__tmp), "+Z" (*(mem))	      \
yann@2437
   412
+		       :						      \
yann@2437
   413
 		       : "cr0", "memory");				      \
yann@2437
   414
      __val;								      \
yann@2437
   415
   })