[Cranelift][Atomics] Add address folding for atomic notify/wait. (#2556)
* fold address in wasm wait and notify ops * add atomics addr folding tests
This commit is contained in:
52
tests/misc_testsuite/threads/atomics_wait_address.wast
Normal file
52
tests/misc_testsuite/threads/atomics_wait_address.wast
Normal file
@@ -0,0 +1,52 @@
|
||||
;; From https://bugzilla.mozilla.org/show_bug.cgi?id=1684861.
|
||||
;;
|
||||
|
||||
(module
|
||||
(type (;0;) (func))
|
||||
(func $main (type 0)
|
||||
i32.const -64
|
||||
i32.const -63
|
||||
memory.atomic.notify offset=1
|
||||
unreachable)
|
||||
(memory (;0;) 4 4)
|
||||
(export "main" (func $main))
|
||||
)
|
||||
|
||||
(assert_trap (invoke "main") "misaligned memory access")
|
||||
|
||||
|
||||
(module
|
||||
(type (;0;) (func))
|
||||
(func $main (type 0)
|
||||
i32.const -64
|
||||
i32.const -63
|
||||
memory.atomic.notify offset=65536
|
||||
unreachable)
|
||||
(memory (;0;) 4 4)
|
||||
(export "main" (func $main))
|
||||
)
|
||||
|
||||
(assert_trap (invoke "main") "out of bounds memory access")
|
||||
|
||||
|
||||
(module
|
||||
(type (;0;) (func))
|
||||
(func $wait32 (type 0)
|
||||
i32.const -64
|
||||
i32.const 42
|
||||
i64.const 0
|
||||
memory.atomic.wait32 offset=1
|
||||
unreachable)
|
||||
(func $wait64 (type 0)
|
||||
i32.const -64
|
||||
i64.const 43
|
||||
i64.const 0
|
||||
memory.atomic.wait64 offset=3
|
||||
unreachable)
|
||||
(memory (;0;) 4 4)
|
||||
(export "wait32" (func $wait32))
|
||||
(export "wait64" (func $wait64))
|
||||
)
|
||||
|
||||
(assert_trap (invoke "wait32") "misaligned memory access")
|
||||
(assert_trap (invoke "wait64") "misaligned memory access")
|
||||
Reference in New Issue
Block a user