From 07c54750eb626ea7434341e439f6cee75efbf4b5 Mon Sep 17 00:00:00 2001 From: Daniel Wirtz Date: Tue, 21 Nov 2017 00:19:12 +0100 Subject: Add atomic load/store to binaryen-c/.js (#1298) --- test/binaryen.js/atomics.js | 63 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 test/binaryen.js/atomics.js (limited to 'test/binaryen.js/atomics.js') 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()); -- cgit v1.2.3