diff options
author | Daniel Wirtz <dcode@dcode.io> | 2017-11-21 00:19:12 +0100 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2017-11-20 15:19:12 -0800 |
commit | 07c54750eb626ea7434341e439f6cee75efbf4b5 (patch) | |
tree | edfd9c82133ece95fdf702f222cf561afafb1f25 /test/binaryen.js/atomics.js | |
parent | a6c4f10233c0caeb0503960d90aa36a2dd76ed64 (diff) | |
download | binaryen-07c54750eb626ea7434341e439f6cee75efbf4b5.tar.gz binaryen-07c54750eb626ea7434341e439f6cee75efbf4b5.tar.bz2 binaryen-07c54750eb626ea7434341e439f6cee75efbf4b5.zip |
Add atomic load/store to binaryen-c/.js (#1298)
Diffstat (limited to 'test/binaryen.js/atomics.js')
-rw-r--r-- | test/binaryen.js/atomics.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/test/binaryen.js/atomics.js b/test/binaryen.js/atomics.js new file mode 100644 index 000000000..a3880902f --- /dev/null +++ b/test/binaryen.js/atomics.js @@ -0,0 +1,63 @@ +var module = Binaryen.parseText(` +(module + (memory $0 (shared 1 1)) +) +`); + +var signature = module.addFunctionType("v", Binaryen.none, []); + +// i32/i64.atomic.load/store +module.addFunction("main", signature, [], module.block("", [ + // i32 + module.i32.atomic.store(0, + module.i32.const(0), + module.i32.atomic.load(0, + module.i32.const(0) + ) + ), + // i32 as u8 + module.i32.atomic.store8(0, + module.i32.const(0), + module.i32.atomic.load8_u(0, + module.i32.const(0) + ) + ), + // i32 as u16 + module.i32.atomic.store16(0, + module.i32.const(0), + module.i32.atomic.load16_u(0, + module.i32.const(0) + ) + ), + // i64 + module.i64.atomic.store(0, + module.i32.const(0), + module.i64.atomic.load(0, + module.i32.const(0) + ) + ), + // i64 as u8 + module.i64.atomic.store8(0, + module.i32.const(0), + module.i64.atomic.load8_u(0, + module.i32.const(0) + ) + ), + // i64 as u16 + module.i64.atomic.store16(0, + module.i32.const(0), + module.i64.atomic.load16_u(0, + module.i32.const(0) + ) + ), + // i64 as u32 + module.i64.atomic.store32(0, + module.i32.const(0), + module.i64.atomic.load32_u(0, + module.i32.const(0) + ) + ) +])); + +module.validate(); +console.log(module.emitText()); |