@@ -131,7 +131,7 @@ static inline unsigned long fetchadd64_acquire_release (unsigned long *ptr, unsi
131131 : "memory" );
132132#elif defined(__riscv ) && !defined(USE_BUILTIN )
133133 asm volatile ("amoadd.d.aqrl %[old], %[val], %[ptr]"
134- : [old ] "=&r" (old ), [ptr ] "+m " (* ptr )
134+ : [old ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
135135 : [val ] "r" (addend )
136136 : "memory" );
137137#else
@@ -169,7 +169,7 @@ static inline unsigned long fetchadd64_acquire (unsigned long *ptr, unsigned lon
169169 : "memory" );
170170#elif defined(__riscv ) && !defined(USE_BUILTIN )
171171 asm volatile ("amoadd.d.aq %[old], %[val], %[ptr]"
172- : [old ] "=&r" (old ), [ptr ] "+m " (* ptr )
172+ : [old ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
173173 : [val ] "r" (addend )
174174 : "memory" );
175175#else
@@ -208,7 +208,7 @@ static inline unsigned long fetchadd64_release (unsigned long *ptr, unsigned lon
208208 : "memory" );
209209#elif defined(__riscv ) && !defined(USE_BUILTIN )
210210 asm volatile ("amoadd.d.rl %[old], %[val], %[ptr]"
211- : [old ] "=&r" (old ), [ptr ] "+m " (* ptr )
211+ : [old ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
212212 : [val ] "r" (addend )
213213 : "memory" );
214214#else
@@ -246,7 +246,7 @@ static inline unsigned long fetchadd64 (unsigned long *ptr, unsigned long addend
246246 : "memory" );
247247#elif defined(__riscv ) && !defined(USE_BUILTIN )
248248 asm volatile ("amoadd.d %[old], %[val], %[ptr]"
249- : [old ] "=&r" (old ), [ptr ] "+m " (* ptr )
249+ : [old ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
250250 : [val ] "r" (addend )
251251 : "memory" );
252252#else
@@ -288,7 +288,7 @@ static inline unsigned long fetchsub64 (unsigned long *ptr, unsigned long addend
288288#elif defined(__riscv ) && !defined(USE_BUILTIN )
289289 addend = (unsigned long ) (- (long ) addend );
290290 asm volatile ("amoadd.d %[old], %[val], %[ptr]"
291- : [old ] "=&r" (old ), [ptr ] "+m " (* ptr )
291+ : [old ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
292292 : [val ] "r" (addend )
293293 : "memory" );
294294#else
@@ -323,8 +323,8 @@ static inline unsigned long swap64 (unsigned long *ptr, unsigned long val) {
323323 : [val ] "r" (val )
324324 : "memory" );
325325#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 ) )
328328 : [val ] "r" (val )
329329 : "memory" );
330330#else
@@ -365,16 +365,16 @@ static inline unsigned long cas64 (unsigned long *ptr, unsigned long newval, uns
365365 unsigned long tmp ;
366366
367367 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 ) )
373373 : [exp ] "r" (expected ), [val ] "r" (newval )
374374 : "memory" );
375375#elif defined(__riscv ) && !defined(USE_BUILTIN ) && defined(__riscv_zacas )
376376 asm volatile ("amocas.d %[exp], %[val], %[ptr]"
377- : [exp ] "=&r" (old ), [ptr ] "+Q " (* ptr )
377+ : [exp ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
378378 : "r[exp]" (expected ), [val ] "r" (newval )
379379 : "memory" );
380380#else
@@ -420,12 +420,12 @@ static inline unsigned long cas64_acquire (unsigned long *ptr, unsigned long val
420420 " sc.d %[tmp], %[newval], %[ptr]\n"
421421 " bnez %[tmp], 1b\n"
422422 "2:"
423- : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+m " (* ptr )
423+ : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+A " (* ( ptr ) )
424424 : [exp ] "r" (exp ), [newval ] "r" (val )
425425 : "memory" );
426426#elif defined(__riscv ) && !defined(USE_BUILTIN ) && defined(__riscv_zacas )
427427 asm volatile ("amocas.d %[exp], %[val], %[ptr]"
428- : [exp ] "=&r" (old ), [ptr ] "+Q " (* ptr )
428+ : [exp ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
429429 : "r[exp]" (exp ), [val ] "r" (val )
430430 : "memory" );
431431#else
@@ -471,12 +471,12 @@ static inline unsigned long cas64_release (unsigned long *ptr, unsigned long val
471471 " sc.d.rl %[tmp], %[val], %[ptr]\n"
472472 " bnez %[tmp], 1b\n"
473473 "2:"
474- : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+m " (* ptr )
474+ : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+A " (* ( ptr ) )
475475 : [exp ] "r" (exp ), [val ] "r" (val )
476476 : "memory" );
477477#elif defined(__riscv ) && !defined(USE_BUILTIN ) && defined(__riscv_zacas )
478478 asm volatile ("amocas.d.rl %[exp], %[val], %[ptr]"
479- : [exp ] "=&r" (old ), [ptr ] "+Q " (* ptr )
479+ : [exp ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
480480 : "r[exp]" (exp ), [val ] "r" (val )
481481 : "memory" );
482482#else
@@ -522,12 +522,12 @@ static inline unsigned long cas64_acquire_release (unsigned long *ptr, unsigned
522522 " sc.d.rl %[tmp], %[val], %[ptr]\n"
523523 " bnez %[tmp], 1b\n"
524524 "2:"
525- : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+m " (* ptr )
525+ : [old ] "=&r" (old ), [tmp ] "=&r" (tmp ), [ptr ] "+A " (* ( ptr ) )
526526 : [exp ] "r" (exp ), [val ] "r" (val )
527527 : "memory" );
528528#elif defined(__riscv ) && !defined(USE_BUILTIN ) && defined(__riscv_zacas )
529529 asm volatile ("amocas.d.aqrl %[exp], %[val], %[ptr]"
530- : [exp ] "=&r" (old ), [ptr ] "+Q " (* ptr )
530+ : [exp ] "=&r" (old ), [ptr ] "+A " (* ( ptr ) )
531531 : "r[exp]" (exp ), [val ] "r" (val )
532532 : "memory" );
533533#else
0 commit comments