# 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)
# * p	- pointer to base type (int/s64/long)
#
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:new
cmpxchg			I	v	i:old	i:new
try_cmpxchg		B	v	p: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
