cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

atomics.tbl (1158B)


      1# name	meta	args...
      2#
      3# Where meta contains a string of variants to generate.
      4# Upper-case implies _{acquire,release,relaxed} variants.
      5# Valid meta values are:
      6# * B/b	- bool: returns bool
      7# * v	- void: returns void
      8# * I/i	- int: returns base type
      9# * R	- return: returns base type (has _return variants)
     10# * F/f	- fetch: returns base type (has fetch_ variants)
     11# * l	- load: returns base type (has _acquire order variant)
     12# * s	- store: returns void (has _release order variant)
     13#
     14# Where args contains list of type[:name], where type is:
     15# * cv	- const pointer to atomic base type (atomic_t/atomic64_t/atomic_long_t)
     16# * v	- pointer to atomic base type (atomic_t/atomic64_t/atomic_long_t)
     17# * i	- base type (int/s64/long)
     18# * p	- pointer to base type (int/s64/long)
     19#
     20read			l	cv
     21set			s	v	i
     22add			vRF	i	v
     23sub			vRF	i	v
     24inc			vRF	v
     25dec			vRF	v
     26and			vF	i	v
     27andnot			vF	i	v
     28or			vF	i	v
     29xor			vF	i	v
     30xchg			I	v	i
     31cmpxchg			I	v	i:old	i:new
     32try_cmpxchg		B	v	p:old	i:new
     33sub_and_test		b	i	v
     34dec_and_test		b	v
     35inc_and_test		b	v
     36add_negative		b	i	v
     37add_unless		fb	v	i:a	i:u
     38inc_not_zero		b	v
     39inc_unless_negative	b	v
     40dec_unless_positive	b	v
     41dec_if_positive		i	v