MCPcopy Create free account
hub / github.com/nodejs/node / Module

Function Module

deps/v8/test/mjsunit/asm/atomics-compareexchange.js:5–66  ·  view source on GitHub ↗
(stdlib, foreign, heap, offset)

Source from the content-addressed store, hash-verified

3// found in the LICENSE file.
4
5function Module(stdlib, foreign, heap, offset) {
6 "use asm";
7 var MEM8 = new stdlib.Int8Array(heap, offset);
8 var MEM16 = new stdlib.Int16Array(heap, offset);
9 var MEM32 = new stdlib.Int32Array(heap, offset);
10 var MEMU8 = new stdlib.Uint8Array(heap, offset);
11 var MEMU16 = new stdlib.Uint16Array(heap, offset);
12 var MEMU32 = new stdlib.Uint32Array(heap, offset);
13 var compareExchange = stdlib.Atomics.compareExchange;
14 var fround = stdlib.Math.fround;
15
16 function compareExchangei8(i, o, n) {
17 i = i | 0;
18 o = o | 0;
19 n = n | 0;
20 return compareExchange(MEM8, i, o, n)|0;
21 }
22
23 function compareExchangei16(i, o, n) {
24 i = i | 0;
25 o = o | 0;
26 n = n | 0;
27 return compareExchange(MEM16, i, o, n)|0;
28 }
29
30 function compareExchangei32(i, o, n) {
31 i = i | 0;
32 o = o | 0;
33 n = n | 0;
34 return compareExchange(MEM32, i, o, n)|0;
35 }
36
37 function compareExchangeu8(i, o, n) {
38 i = i | 0;
39 o = o >>> 0;
40 n = n >>> 0;
41 return compareExchange(MEMU8, i, o, n)>>>0;
42 }
43
44 function compareExchangeu16(i, o, n) {
45 i = i | 0;
46 o = o >>> 0;
47 n = n >>> 0;
48 return compareExchange(MEMU16, i, o, n)>>>0;
49 }
50
51 function compareExchangeu32(i, o, n) {
52 i = i | 0;
53 o = o >>> 0;
54 n = n >>> 0;
55 return compareExchange(MEMU32, i, o, n)>>>0;
56 }
57
58 return {
59 compareExchangei8: compareExchangei8,
60 compareExchangei16: compareExchangei16,
61 compareExchangei32: compareExchangei32,
62 compareExchangeu8: compareExchangeu8,

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected