]>
git.proxmox.com Git - rustc.git/blob - src/binaryen/test/threads.wasm-only.asm.js
2 // Test wasm-only builds. In this case, fastcomp emits code that is
3 // not asm.js, it will only ever run as wasm, and contains special intrinsics for
4 // asm2wasm that map LLVM IR into i64s.
7 function asm(global
, env
, buffer
) {
10 var HEAP8
= new global
.Int8Array(buffer
);
11 var HEAP16
= new global
.Int16Array(buffer
);
12 var HEAP32
= new global
.Int32Array(buffer
);
13 var HEAPU8
= new global
.Uint8Array(buffer
);
14 var HEAPU16
= new global
.Uint16Array(buffer
);
15 var HEAPU32
= new global
.Uint32Array(buffer
);
16 var HEAPF32
= new global
.Float32Array(buffer
);
17 var HEAPF64
= new global
.Float64Array(buffer
);
19 var STACKTOP
= env
.STACKTOP
| 0;
21 var fround
= global
.Math
.fround
;
22 var Math_imul
= global
.Math
.imul
;
24 var illegalImport
= env
.illegalImport
;
25 var illegalImportResult
= env
.illegalImportResult
;
27 var _fabsf
= env
._fabsf
;
28 var do_i64
= env
.do_i64
;
29 var abort
= env
.abort
;
32 var x
= i64(), y
= i64(), z
= 0; // define i64 variables using special intrinsic
33 var int32
= 0, float32
= fround(0), float64
= +0;
34 i64_atomics_store(4656, i64_const(92, 0))|0;
35 x
= i64_atomics_load(4656);
36 y
= i64_atomics_add(int32
, i64_const(26, 0))|0;
37 x
= i64_atomics_sub(1024, y
)|0;
38 y
= i64_atomics_and(1024, x
)|0;
39 x
= i64_atomics_or(1024, y
)|0;
40 y
= i64_atomics_xor(1024, x
)|0;
41 x
= i64_atomics_exchange(1024, y
)|0;
42 y
= i64_atomics_compareExchange(1024, x
, y
)|0;
46 return { test64
: test64
};