@@ -27,7 +27,7 @@ void membar_exit(void) __WASM_BUILTIN(atomic_fence);
27
27
/**
28
28
* @return Returns the number of woken up agents
29
29
*/
30
- uint32_t atomic_notify (const uint32_t * valp , uint32_t count ) __WASM_BUILTIN (memory_atomic_notify );
30
+ uint32_t __builtin_futex_notify (const uint32_t * valp , uint32_t count ) __WASM_BUILTIN (memory_atomic_notify );
31
31
32
32
void atomic_fence (void ) __WASM_BUILTIN (atomic_fence );
33
33
@@ -43,37 +43,37 @@ enum wait_result {
43
43
* @see https://github.com/WebAssembly/threads/blob/main/proposals/threads/Overview.md#wait
44
44
* @param timeout specifies a timeout in nanoseconds, timeout < 0 never expires.
45
45
*/
46
- enum wait_result atomic_wait32 (volatile uint32_t * valp , uint32_t expected , int64_t timeout ) __WASM_BUILTIN (memory_atomic_wait32 );
47
-
48
- uint8_t atomic_load8 (const uint8_t * valp ) __WASM_BUILTIN (i32_atomic_load8_u );
49
- void atomic_store8 (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_store8 );
50
- uint8_t atomic_add8 (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_rmw8_add_u );
51
- uint8_t atomic_sub8 (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_rmw8_sub_u );
52
- uint8_t atomic_and8 (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_rmw8_and_u );
53
- uint8_t atomic_or8 (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_rmw8_or_u );
54
- uint8_t atomic_xor8 (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_rmw8_xor_u );
55
- uint8_t atomic_xchg8 (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_rmw8_xchg_u );
56
- uint8_t atomic_cmpxchg8 (volatile uint8_t * valp , uint8_t expected , uint8_t replacement ) __WASM_BUILTIN (i32_atomic_rmw8_cmpxchg_u );
57
-
58
- uint16_t atomic_load16 (const uint16_t * valp ) __WASM_BUILTIN (i32_atomic_load16_u );
59
- void atomic_store16 (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_store16 );
60
- uint16_t atomic_add16 (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_rmw16_add_u );
61
- uint16_t atomic_sub16 (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_rmw16_sub_u );
62
- uint16_t atomic_and16 (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_rmw16_and_u );
63
- uint16_t atomic_or16 (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_rmw16_or_u );
64
- uint16_t atomic_xor16 (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_rmw16_xor_u );
65
- uint16_t atomic_xchg16 (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_rmw16_xchg_u );
66
- uint16_t atomic_cmpxchg16 (volatile uint16_t * valp , uint16_t expected , uint16_t replacement ) __WASM_BUILTIN (i32_atomic_rmw16_cmpxchg_u );
67
-
68
- uint32_t atomic_load32 (const uint32_t * valp ) __WASM_BUILTIN (i32_atomic_load );
69
- void atomic_store32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_store );
70
- uint32_t atomic_add32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_rmw_add );
71
- uint32_t atomic_sub32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_rmw_sub );
72
- uint32_t atomic_and32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_rmw_and );
73
- uint32_t atomic_or32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_rmw_or );
74
- uint32_t atomic_xor32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_rmw_xor );
75
- uint32_t atomic_xchg32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_rmw_xchg );
76
- uint32_t atomic_cmpxchg32 (volatile uint32_t * valp , uint32_t expected , uint32_t replacement ) __WASM_BUILTIN (i32_atomic_rmw_cmpxchg );
46
+ enum wait_result __builtin_futex_wait32 (volatile uint32_t * valp , uint32_t expected , int64_t timeout ) __WASM_BUILTIN (memory_atomic_wait32 );
47
+
48
+ uint8_t __builtin_atomic_load8_u (const uint8_t * valp ) __WASM_BUILTIN (i32_atomic_load8_u );
49
+ void __builtin_atomic_store8 (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_store8 );
50
+ uint8_t __builtin_atomic_rmw_add8_u (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_rmw8_add_u );
51
+ uint8_t __builtin_atomic_rmw_sub8_u (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_rmw8_sub_u );
52
+ uint8_t __builtin_atomic_rmw_and8_u (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_rmw8_and_u );
53
+ uint8_t __builtin_atomic_rmw_or8_u (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_rmw8_or_u );
54
+ uint8_t __builtin_atomic_rmw_xor8_u (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_rmw8_xor_u );
55
+ uint8_t __builtin_atomic_rmw_xchg8_u (volatile uint8_t * valp , uint8_t val ) __WASM_BUILTIN (i32_atomic_rmw8_xchg_u );
56
+ uint8_t __builtin_atomic_rmw_cmpxchg8_u (volatile uint8_t * valp , uint8_t expected , uint8_t replacement ) __WASM_BUILTIN (i32_atomic_rmw8_cmpxchg_u );
57
+
58
+ uint16_t __builtin_atomic_load16_u (const uint16_t * valp ) __WASM_BUILTIN (i32_atomic_load16_u );
59
+ void __builtin_atomic_store16 (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_store16 );
60
+ uint16_t __builtin_atomic_rmw_add16_u (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_rmw16_add_u );
61
+ uint16_t __builtin_atomic_rmw_sub16_u (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_rmw16_sub_u );
62
+ uint16_t __builtin_atomic_rmw_and16_u (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_rmw16_and_u );
63
+ uint16_t __builtin_atomic_rmw_or16_u (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_rmw16_or_u );
64
+ uint16_t __builtin_atomic_rmw_xor16_u (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_rmw16_xor_u );
65
+ uint16_t __builtin_atomic_rmw_xchg16_u (volatile uint16_t * valp , uint16_t val ) __WASM_BUILTIN (i32_atomic_rmw16_xchg_u );
66
+ uint16_t __builtin_atomic_rmw_cmpxchg16_u (volatile uint16_t * valp , uint16_t expected , uint16_t replacement ) __WASM_BUILTIN (i32_atomic_rmw16_cmpxchg_u );
67
+
68
+ uint32_t __builtin_atomic_load32 (const uint32_t * valp ) __WASM_BUILTIN (i32_atomic_load );
69
+ void __builtin_atomic_store32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_store );
70
+ uint32_t __builtin_atomic_rmw_add32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_rmw_add );
71
+ uint32_t __builtin_atomic_rmw_sub32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_rmw_sub );
72
+ uint32_t __builtin_atomic_rmw_and32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_rmw_and );
73
+ uint32_t __builtin_atomic_rmw_or32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_rmw_or );
74
+ uint32_t __builtin_atomic_rmw_xor32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_rmw_xor );
75
+ uint32_t __builtin_atomic_rmw_xchg32 (volatile uint32_t * valp , uint32_t val ) __WASM_BUILTIN (i32_atomic_rmw_xchg );
76
+ uint32_t __builtin_atomic_rmw_cmpxchg32 (volatile uint32_t * valp , uint32_t expected , uint32_t replacement ) __WASM_BUILTIN (i32_atomic_rmw_cmpxchg );
77
77
78
78
// 64-bit
79
79
@@ -82,17 +82,17 @@ uint32_t atomic_cmpxchg32(volatile uint32_t *valp, uint32_t expected, uint32_t r
82
82
* @see https://github.com/WebAssembly/threads/blob/main/proposals/threads/Overview.md#wait
83
83
* @param timeout specifies a timeout in nanoseconds, timeout < 0 never expires.
84
84
*/
85
- enum wait_result atomic_wait64 (volatile uint64_t * valp , uint64_t expected , int64_t timeout ) __WASM_BUILTIN (memory_atomic_wait64 );
86
-
87
- uint64_t atomic_load64 (const uint64_t * valp ) __WASM_BUILTIN (i64_atomic_load );
88
- void atomic_store64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_store );
89
- uint64_t atomic_add64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_rmw_add );
90
- uint64_t atomic_sub64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_rmw_sub );
91
- uint64_t atomic_and64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_rmw_and );
92
- uint64_t atomic_or64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_rmw_or );
93
- uint64_t atomic_xor64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_rmw_xor );
94
- uint64_t atomic_xchg64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_rmw_xchg );
95
- uint64_t atomic_cmpxchg64 (volatile uint64_t * valp , uint64_t expected , uint64_t replacement ) __WASM_BUILTIN (i64_atomic_rmw_cmpxchg );
85
+ enum wait_result __builtin_futex_wait64 (volatile uint64_t * valp , uint64_t expected , int64_t timeout ) __WASM_BUILTIN (memory_atomic_wait64 );
86
+
87
+ uint64_t __builtin_atomic_load64 (const uint64_t * valp ) __WASM_BUILTIN (i64_atomic_load );
88
+ void __builtin_atomic_store64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_store );
89
+ uint64_t __builtin_atomic_rmw_add64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_rmw_add );
90
+ uint64_t __builtin_atomic_rmw_sub64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_rmw_sub );
91
+ uint64_t __builtin_atomic_rmw_and64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_rmw_and );
92
+ uint64_t __builtin_atomic_rmw_or64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_rmw_or );
93
+ uint64_t __builtin_atomic_rmw_xor64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_rmw_xor );
94
+ uint64_t __builtin_atomic_rmw_xchg64 (volatile uint64_t * valp , uint64_t val ) __WASM_BUILTIN (i64_atomic_rmw_xchg );
95
+ uint64_t __builtin_atomic_rmw_cmpxchg64 (volatile uint64_t * valp , uint64_t expected , uint64_t replacement ) __WASM_BUILTIN (i64_atomic_rmw_cmpxchg );
96
96
97
97
void wasm_inst_nop (void );
98
98
0 commit comments