41 lines · 1.1 KB · Text
RawDownload
# 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	cvset			s	v	iadd			vRF	i	vsub			vRF	i	vinc			vRF	vdec			vRF	vand			vF	i	vandnot			vF	i	vor			vF	i	vxor			vF	i	vxchg			I	v	icmpxchg			I	v	i:old	i:newtry_cmpxchg		B	v	p:old	i:newsub_and_test		b	i	vdec_and_test		b	vinc_and_test		b	vadd_negative		b	i	vadd_unless		fb	v	i:a	i:uinc_not_zero		b	vinc_unless_negative	b	vdec_unless_positive	b	vdec_if_positive		i	v