api

asm.ch

Declarations in asm.ch

36 declarationsatomic

Declarations

Public only
__chx__cas_u64#
function
func __chx__cas_u64(ptr : *u64, expected : *u64, desired : u64) : bool
Inline-asm CAS primitives (C backend only, x86_64)
__chx__cas_u32#
function
func __chx__cas_u32(ptr : *u32, expected : *u32, desired : u32) : bool
__chx__cas_u16#
function
func __chx__cas_u16(ptr : *u16, expected : *u16, desired : u16) : bool
__chx__cas_u8#
function
func __chx__cas_u8(ptr : *u8, expected : *u8, desired : u8) : bool
__chx__exchange_u64#
function
func __chx__exchange_u64(ptr : *u64, val : u64) : u64
========================
__chx__fetch_add_u64#
function
func __chx__fetch_add_u64(ptr : *u64, val : u64) : u64
__chx__fetch_sub_u64#
function
func __chx__fetch_sub_u64(ptr : *u64, val : u64) : u64
__chx__fetch_and_u64#
function
func __chx__fetch_and_u64(ptr : *u64, val : u64) : u64
__chx__fetch_or_u64#
function
func __chx__fetch_or_u64(ptr : *u64, val : u64) : u64
__chx__fetch_xor_u64#
function
func __chx__fetch_xor_u64(ptr : *u64, val : u64) : u64
__chx__exchange_u32#
function
func __chx__exchange_u32(ptr : *u32, val : u32) : u32
--- u32 CAS-loop helpers ---
__chx__fetch_add_u32#
function
func __chx__fetch_add_u32(ptr : *u32, val : u32) : u32
__chx__fetch_sub_u32#
function
func __chx__fetch_sub_u32(ptr : *u32, val : u32) : u32
__chx__fetch_and_u32#
function
func __chx__fetch_and_u32(ptr : *u32, val : u32) : u32
__chx__fetch_or_u32#
function
func __chx__fetch_or_u32(ptr : *u32, val : u32) : u32
__chx__fetch_xor_u32#
function
func __chx__fetch_xor_u32(ptr : *u32, val : u32) : u32
__chx__exchange_u16#
function
func __chx__exchange_u16(ptr : *u16, val : u16) : u16
--- u16 CAS-loop helpers ---
__chx__fetch_add_u16#
function
func __chx__fetch_add_u16(ptr : *u16, val : u16) : u16
__chx__fetch_sub_u16#
function
func __chx__fetch_sub_u16(ptr : *u16, val : u16) : u16
__chx__fetch_and_u16#
function
func __chx__fetch_and_u16(ptr : *u16, val : u16) : u16
__chx__fetch_or_u16#
function
func __chx__fetch_or_u16(ptr : *u16, val : u16) : u16
__chx__fetch_xor_u16#
function
func __chx__fetch_xor_u16(ptr : *u16, val : u16) : u16
__chx__exchange_u8#
function
func __chx__exchange_u8(ptr : *u8, val : u8) : u8
--- u8 CAS-loop helpers ---
__chx__fetch_add_u8#
function
func __chx__fetch_add_u8(ptr : *u8, val : u8) : u8
__chx__fetch_sub_u8#
function
func __chx__fetch_sub_u8(ptr : *u8, val : u8) : u8
__chx__fetch_and_u8#
function
func __chx__fetch_and_u8(ptr : *u8, val : u8) : u8
__chx__fetch_or_u8#
function
func __chx__fetch_or_u8(ptr : *u8, val : u8) : u8
__chx__fetch_xor_u8#
function
func __chx__fetch_xor_u8(ptr : *u8, val : u8) : u8
__chx__store_u64#
function
func __chx__store_u64(ptr : *u64, val : u64) : u64
========================
__chx__store_u32#
function
func __chx__store_u32(ptr : *u32, val : u32) : u32
__chx__store_u16#
function
func __chx__store_u16(ptr : *u16, val : u16) : u16
__chx__store_u8#
function
func __chx__store_u8(ptr : *u8, val : u8) : u8
__chx__load_u64#
function
func __chx__load_u64(ptr : *u64) : u64
========================
__chx__load_u32#
function
func __chx__load_u32(ptr : *u32) : u32
__chx__load_u16#
function
func __chx__load_u16(ptr : *u16) : u16
__chx__load_u8#
function
func __chx__load_u8(ptr : *u8) : u8