Messages in this thread | | | Date | Tue, 5 Jun 2018 14:25:37 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH 4/7] atomics: add common header generation files |
| |
On Tue, May 29, 2018 at 07:07:43PM +0100, Mark Rutland wrote: > +++ b/scripts/atomic/atomics.tbl > @@ -0,0 +1,41 @@ > +# name meta args... > +# > +# Where meta contains a string of variants to generate. > +# Upper-case implies _{acquire,release,relaxed} variants. > +# Valid meta values are: > +# * B/b - bool: returns bool > +# * v - void: returns void > +# * I/i - int: returns base type > +# * R - return: returns base type (has _return variants) > +# * F/f - fetch: returns base type (has fetch_ variants) > +# * l - load: returns base type (has _acquire order variant) > +# * s - store: returns void (has _release order variant) > +# > +# Where args contains list of type[:name], where type is: > +# * cv - const pointer to atomic base type (atomic_t/atomic64_t/atomic_long_t) > +# * v - pointer to atomic base type (atomic_t/atomic64_t/atomic_long_t) > +# * i - base type (int/s64/long) > +# * I - pointer to base type (int/s64/long)
I thought we agreed to make that 'p' instead of 'I'.
> +# > +read l cv > +set s v i > +add vRF i v > +sub vRF i v > +inc vRF v > +dec vRF v > +and vF i v > +andnot vF i v > +or vF i v > +xor vF i v > +xchg I v i > +cmpxchg I v i:old i:new > +try_cmpxchg B v I:old i:new > +sub_and_test b i v > +dec_and_test b v > +inc_and_test b v > +add_negative b i v > +add_unless fb v i:a i:u > +inc_not_zero b v > +inc_unless_negative b v > +dec_unless_positive b v > +dec_if_positive i v
| |