1
+ (module
2
+ ;; todo make this a shared memory
3
+ (memory 1 )
4
+
5
+ (func (export " store" ) (param i32 i64 ) (result i32 )
6
+ (i64.atomic.store offset = 15 (get_local 0 ) (get_local 1 ))
7
+ (i32.atomic.load offset = 19 (get_local 0 ))
8
+ )
9
+ )
10
+
11
+ (assert_return (invoke " store" (i32.const 1 ) (i64.const 0xffffffff41ce0000 )) (i32.const 0xffffffff ))
12
+ (assert_return (invoke " store" (i32.const 9 ) (i64.const 0x78563412ffffffff )) (i32.const 0x78563412 ))
13
+ (assert_trap (invoke " store" (i32.const 0 ) (i64.const 0 )) " atomic memory access is unaligned" )
14
+ (assert_trap (invoke " store" (i32.const 2 ) (i64.const 0 )) " atomic memory access is unaligned" )
15
+ (assert_trap (invoke " store" (i32.const 3 ) (i64.const 0 )) " atomic memory access is unaligned" )
16
+ (assert_trap (invoke " store" (i32.const 4 ) (i64.const 0 )) " atomic memory access is unaligned" )
17
+ (assert_trap (invoke " store" (i32.const 5 ) (i64.const 0 )) " atomic memory access is unaligned" )
18
+ (assert_trap (invoke " store" (i32.const 6 ) (i64.const 0 )) " atomic memory access is unaligned" )
19
+ (assert_trap (invoke " store" (i32.const 7 ) (i64.const 0 )) " atomic memory access is unaligned" )
20
+ (assert_trap (invoke " store" (i32.const 8 ) (i64.const 0 )) " atomic memory access is unaligned" )
21
+ (assert_trap (invoke " store" (i32.const 10 ) (i64.const 0 )) " atomic memory access is unaligned" )
22
+ (assert_trap (invoke " store" (i32.const 11 ) (i64.const 0 )) " atomic memory access is unaligned" )
23
+ (assert_trap (invoke " store" (i32.const 12 ) (i64.const 0 )) " atomic memory access is unaligned" )
24
+ (assert_trap (invoke " store" (i32.const 13 ) (i64.const 0 )) " atomic memory access is unaligned" )
25
+ (assert_trap (invoke " store" (i32.const 14 ) (i64.const 0 )) " atomic memory access is unaligned" )
26
+
27
+ (assert_return (invoke " store" (i32.const 65513 ) (i64.const 0x78563412ffffffff )) (i32.const 0x78563412 ))
28
+ (assert_trap (invoke " store" (i32.const 65521 ) (i64.const 0 )) " out of bounds memory access" )
0 commit comments