mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-26 04:20:30 +00:00
Add atomics to chibicc
This change also fixes #434 and makes the chibicc assembler better.
This commit is contained in:
parent
5ddf43332e
commit
a988896048
21 changed files with 650 additions and 445 deletions
12
third_party/chibicc/help.txt
vendored
12
third_party/chibicc/help.txt
vendored
|
@ -196,7 +196,6 @@ BUILTIN FUNCTIONS
|
|||
int __builtin_unreachable()
|
||||
void * __builtin_frame_address(int)
|
||||
_Bool __builtin_types_compatible_p(typename, typename)
|
||||
T __builtin_compare_and_swap(T *addr, T old, T neu)
|
||||
T __builtin_atomic_exchange(T *addr, T neu)
|
||||
T * __builtin_assume_aligned(T *addr)
|
||||
_Bool __builtin_add_overflow(T, T, T *)
|
||||
|
@ -261,11 +260,18 @@ BUILTIN FUNCTIONS
|
|||
long double __builtin_copysignl(long double, long double)
|
||||
void __builtin_ia32_movntq(di *, di)
|
||||
int __builtin_ia32_pmovmskb128(v16qi)
|
||||
T __atomic_load(T *addr, int memorder)
|
||||
T __atomic_load_n(T *addr, int memorder)
|
||||
void __atomic_load(T *addr, T *res, int memorder)
|
||||
void __atomic_store_n(T *addr, T val, int memorder)
|
||||
void __atomic_store(T *addr, T *val, int memorder)
|
||||
void __atomic_clear(_Bool *addr, int memorder)
|
||||
_Bool __atomic_test_and_set(void *addr, int memorder)
|
||||
T __atomic_sub_fetch(T *addr, T amt, int memorder)
|
||||
T __atomic_fetch_add(T *addr, T amt, int memorder)
|
||||
T __atomic_fetch_sub(T *addr, T amt, int memorder)
|
||||
T __atomic_fetch_xor(T *addr, T amt, int memorder)
|
||||
T __atomic_fetch_and(T *addr, T amt, int memorder)
|
||||
T __atomic_fetch_or(T *addr, T amt, int memorder)
|
||||
_Bool __atomic_compare_exchange_n(T *addr, T *old, T neu, int weak, int goodorder, int failorder)
|
||||
T __sync_lock_test_and_set(T *addr, T value, ...)
|
||||
void __sync_lock_release(T *addr, ...)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue