@@ -131,7 +131,7 @@ static inline unsigned long fetchadd64_acquire_release (unsigned long *ptr, unsi
131
131
: "memory" );
132
132
#elif defined(__riscv ) && !defined(USE_BUILTIN )
133
133
asm volatile ("amoadd.d.aqrl %[old], %[val], %[ptr]"
134
- : [old ] "=&r" (old ), [ptr ] "+m " (* ptr )
134
+ : [old ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
135
135
: [val ] "r" (addend )
136
136
: "memory" );
137
137
#else
@@ -169,7 +169,7 @@ static inline unsigned long fetchadd64_acquire (unsigned long *ptr, unsigned lon
169
169
: "memory" );
170
170
#elif defined(__riscv ) && !defined(USE_BUILTIN )
171
171
asm volatile ("amoadd.d.aq %[old], %[val], %[ptr]"
172
- : [old ] "=&r" (old ), [ptr ] "+m " (* ptr )
172
+ : [old ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
173
173
: [val ] "r" (addend )
174
174
: "memory" );
175
175
#else
@@ -208,7 +208,7 @@ static inline unsigned long fetchadd64_release (unsigned long *ptr, unsigned lon
208
208
: "memory" );
209
209
#elif defined(__riscv ) && !defined(USE_BUILTIN )
210
210
asm volatile ("amoadd.d.rl %[old], %[val], %[ptr]"
211
- : [old ] "=&r" (old ), [ptr ] "+m " (* ptr )
211
+ : [old ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
212
212
: [val ] "r" (addend )
213
213
: "memory" );
214
214
#else
@@ -246,7 +246,7 @@ static inline unsigned long fetchadd64 (unsigned long *ptr, unsigned long addend
246
246
: "memory" );
247
247
#elif defined(__riscv ) && !defined(USE_BUILTIN )
248
248
asm volatile ("amoadd.d %[old], %[val], %[ptr]"
249
- : [old ] "=&r" (old ), [ptr ] "+m " (* ptr )
249
+ : [old ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
250
250
: [val ] "r" (addend )
251
251
: "memory" );
252
252
#else
@@ -288,7 +288,7 @@ static inline unsigned long fetchsub64 (unsigned long *ptr, unsigned long addend
288
288
#elif defined(__riscv ) && !defined(USE_BUILTIN )
289
289
addend = (unsigned long ) (- (long ) addend );
290
290
asm volatile ("amoadd.d %[old], %[val], %[ptr]"
291
- : [old ] "=&r" (old ), [ptr ] "+m " (* ptr )
291
+ : [old ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
292
292
: [val ] "r" (addend )
293
293
: "memory" );
294
294
#else
@@ -323,8 +323,8 @@ static inline unsigned long swap64 (unsigned long *ptr, unsigned long val) {
323
323
: [val ] "r" (val )
324
324
: "memory" );
325
325
#elif defined(__riscv ) && !defined(USE_BUILTIN )
326
- asm volatile ("amoswap.d %[old], %[val], %[ptr]"
327
- : [old ] "=&r" (old ), [ptr ] "+m " (* ptr )
326
+ asm volatile ("amoswap.d.aqrl %[old], %[val], %[ptr]"
327
+ : [old ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
328
328
: [val ] "r" (val )
329
329
: "memory" );
330
330
#else
@@ -365,16 +365,16 @@ static inline unsigned long cas64 (unsigned long *ptr, unsigned long newval, uns
365
365
unsigned long tmp ;
366
366
367
367
asm volatile ( "1: lr.d %[old], %[ptr]\n"
368
- " bne %[old], %[exp], 2f\n"
369
- " sc.d %[tmp], %[val], %[ptr]\n"
370
- " bnez %[tmp], 1b\n"
371
- "2:"
372
- : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+m " (* ptr )
368
+ " bne %[old], %[exp], 2f\n"
369
+ " sc.d %[tmp], %[val], %[ptr]\n"
370
+ " bnez %[tmp], 1b\n"
371
+ "2:"
372
+ : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+A " (* ( ptr ) )
373
373
: [exp ] "r" (expected ), [val ] "r" (newval )
374
374
: "memory" );
375
375
#elif defined(__riscv ) && !defined(USE_BUILTIN ) && defined(__riscv_zacas )
376
376
asm volatile ("amocas.d %[exp], %[val], %[ptr]"
377
- : [exp ] "=&r" (old ), [ptr ] "+Q " (* ptr )
377
+ : [exp ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
378
378
: "r[exp]" (expected ), [val ] "r" (newval )
379
379
: "memory" );
380
380
#else
@@ -420,12 +420,12 @@ static inline unsigned long cas64_acquire (unsigned long *ptr, unsigned long val
420
420
" sc.d %[tmp], %[newval], %[ptr]\n"
421
421
" bnez %[tmp], 1b\n"
422
422
"2:"
423
- : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+m " (* ptr )
423
+ : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+A " (* ( ptr ) )
424
424
: [exp ] "r" (exp ), [newval ] "r" (val )
425
425
: "memory" );
426
426
#elif defined(__riscv ) && !defined(USE_BUILTIN ) && defined(__riscv_zacas )
427
427
asm volatile ("amocas.d %[exp], %[val], %[ptr]"
428
- : [exp ] "=&r" (old ), [ptr ] "+Q " (* ptr )
428
+ : [exp ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
429
429
: "r[exp]" (exp ), [val ] "r" (val )
430
430
: "memory" );
431
431
#else
@@ -471,12 +471,12 @@ static inline unsigned long cas64_release (unsigned long *ptr, unsigned long val
471
471
" sc.d.rl %[tmp], %[val], %[ptr]\n"
472
472
" bnez %[tmp], 1b\n"
473
473
"2:"
474
- : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+m " (* ptr )
474
+ : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+A " (* ( ptr ) )
475
475
: [exp ] "r" (exp ), [val ] "r" (val )
476
476
: "memory" );
477
477
#elif defined(__riscv ) && !defined(USE_BUILTIN ) && defined(__riscv_zacas )
478
478
asm volatile ("amocas.d.rl %[exp], %[val], %[ptr]"
479
- : [exp ] "=&r" (old ), [ptr ] "+Q " (* ptr )
479
+ : [exp ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
480
480
: "r[exp]" (exp ), [val ] "r" (val )
481
481
: "memory" );
482
482
#else
@@ -522,12 +522,12 @@ static inline unsigned long cas64_acquire_release (unsigned long *ptr, unsigned
522
522
" sc.d.rl %[tmp], %[val], %[ptr]\n"
523
523
" bnez %[tmp], 1b\n"
524
524
"2:"
525
- : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+m " (* ptr )
525
+ : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+A " (* ( ptr ) )
526
526
: [exp ] "r" (exp ), [val ] "r" (val )
527
527
: "memory" );
528
528
#elif defined(__riscv ) && !defined(USE_BUILTIN ) && defined(__riscv_zacas )
529
529
asm volatile ("amocas.d.aqrl %[exp], %[val], %[ptr]"
530
- : [exp ] "=&r" (old ), [ptr ] "+Q " (* ptr )
530
+ : [exp ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
531
531
: "r[exp]" (exp ), [val ] "r" (val )
532
532
: "memory" );
533
533
#else
0 commit comments