diff options
Diffstat (limited to 'test/threads.asm.js')
-rw-r--r-- | test/threads.asm.js | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/test/threads.asm.js b/test/threads.asm.js new file mode 100644 index 000000000..1253e8c42 --- /dev/null +++ b/test/threads.asm.js @@ -0,0 +1,144 @@ +Module["asm"] = (function(global, env, buffer) { + 'use asm'; + + + var HEAP8 = new global.Int8Array(buffer); + var HEAP16 = new global.Int16Array(buffer); + var HEAP32 = new global.Int32Array(buffer); + var HEAPU8 = new global.Uint8Array(buffer); + var HEAPU16 = new global.Uint16Array(buffer); + var HEAPU32 = new global.Uint32Array(buffer); + var HEAPF32 = new global.Float32Array(buffer); + var HEAPF64 = new global.Float64Array(buffer); + + var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; + var tempDoublePtr=env.tempDoublePtr|0; + var ABORT=env.ABORT|0; + var STACKTOP=env.STACKTOP|0; + var STACK_MAX=env.STACK_MAX|0; + + var __THREW__ = 0; + var threwValue = 0; + var setjmpId = 0; + var undef = 0; + var nan = global.NaN, inf = global.Infinity; + var tempInt = 0, tempBigInt = 0, tempBigIntS = 0, tempValue = 0, tempDouble = 0.0; + var tempRet0 = 0; + + var __pthread_ptr = 0; + var __pthread_is_main_runtime_thread = 0; + var __pthread_is_main_browser_thread = 0; + + var Math_floor=global.Math.floor; + var Math_abs=global.Math.abs; + var Math_sqrt=global.Math.sqrt; + var Math_pow=global.Math.pow; + var Math_cos=global.Math.cos; + var Math_sin=global.Math.sin; + var Math_tan=global.Math.tan; + var Math_acos=global.Math.acos; + var Math_asin=global.Math.asin; + var Math_atan=global.Math.atan; + var Math_atan2=global.Math.atan2; + var Math_exp=global.Math.exp; + var Math_log=global.Math.log; + var Math_ceil=global.Math.ceil; + var Math_imul=global.Math.imul; + var Math_min=global.Math.min; + var Math_max=global.Math.max; + var Math_clz32=global.Math.clz32; + var Math_fround=global.Math.fround; + var abort=env.abort; + var assert=env.assert; + var enlargeMemory=env.enlargeMemory; + var getTotalMemory=env.getTotalMemory; + var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; + var abortStackOverflow=env.abortStackOverflow; + var nullFunc_iiii=env.nullFunc_iiii; + var nullFunc_i=env.nullFunc_i; + var nullFunc_vi=env.nullFunc_vi; + var nullFunc_vii=env.nullFunc_vii; + var nullFunc_ii=env.nullFunc_ii; + var nullFunc_viii=env.nullFunc_viii; + var nullFunc_v=env.nullFunc_v; + var nullFunc_iii=env.nullFunc_iii; + var invoke_iiii=env.invoke_iiii; + var invoke_i=env.invoke_i; + var invoke_vi=env.invoke_vi; + var invoke_vii=env.invoke_vii; + var invoke_ii=env.invoke_ii; + var invoke_viii=env.invoke_viii; + var invoke_v=env.invoke_v; + var invoke_iii=env.invoke_iii; + var __spawn_thread=env.__spawn_thread; + var _putenv=env._putenv; + var _emscripten_get_now_is_monotonic=env._emscripten_get_now_is_monotonic; + var _fpathconf=env._fpathconf; + var ___unlock=env.___unlock; + var _emscripten_syscall=env._emscripten_syscall; + var ___assert_fail=env.___assert_fail; + var _utimes=env._utimes; + var ___buildEnvironment=env.___buildEnvironment; + var _emscripten_asm_const_i=env._emscripten_asm_const_i; + var _clock_gettime=env._clock_gettime; + var _emscripten_futex_wait=env._emscripten_futex_wait; + var _tzset=env._tzset; + var ___setErrNo=env.___setErrNo; + var _emscripten_set_current_thread_status_js=env._emscripten_set_current_thread_status_js; + var _pthread_getschedparam=env._pthread_getschedparam; + var _clearenv=env._clearenv; + var _emscripten_futex_wake=env._emscripten_futex_wake; + var _sysconf=env._sysconf; + var _utime=env._utime; + var ___call_main=env.___call_main; + var _emscripten_memcpy_big=env._emscripten_memcpy_big; + var _confstr=env._confstr; + var _getenv=env._getenv; + var ___syscall54=env.___syscall54; + var _emscripten_has_threading_support=env._emscripten_has_threading_support; + var _pthread_create=env._pthread_create; + var _emscripten_get_now=env._emscripten_get_now; + var _chroot=env._chroot; + var ___lock=env.___lock; + var ___syscall6=env.___syscall6; + var _unsetenv=env._unsetenv; + var ___clock_gettime=env.___clock_gettime; + var _gettimeofday=env._gettimeofday; + var _atexit=env._atexit; + var ___syscall140=env.___syscall140; + var _emscripten_set_thread_name_js=env._emscripten_set_thread_name_js; + var _setenv=env._setenv; + var ___syscall146=env.___syscall146; + var _emscripten_conditional_set_current_thread_status_js=env._emscripten_conditional_set_current_thread_status_js; + var Atomics_load=global.Atomics.load; + var Atomics_store=global.Atomics.store; + var Atomics_exchange=global.Atomics.exchange; + var Atomics_compareExchange=global.Atomics.compareExchange; + var Atomics_add=global.Atomics.add; + var Atomics_sub=global.Atomics.sub; + var Atomics_and=global.Atomics.and; + var Atomics_or=global.Atomics.or; + var Atomics_xor=global.Atomics.xor; + var tempFloat = Math_fround(0); + const f0 = Math_fround(0); + + function test() { + var $temp = 0; + $temp = (Atomics_load(HEAP32, 1229)|0); + $temp = (Atomics_load(HEAPU16, 1229)|0); + $temp = (Atomics_store(HEAP32, $temp>>2, 0)|0); + $temp = (Atomics_exchange(HEAP32, $temp>>2, 1)|0); + $temp = (Atomics_compareExchange(HEAP32, $temp>>2, 1, 2)|0); + $temp = (Atomics_add(HEAP32, $temp>>2, 0)|0); + $temp = (Atomics_sub(HEAP32, $temp>>2, 0)|0); + $temp = (Atomics_and(HEAP32, $temp>>2, 0)|0); + $temp = (Atomics_or(HEAP32, $temp>>2, 0)|0); + $temp = (Atomics_xor(HEAP32, $temp>>2, 0)|0); + $temp = (Atomics_xor(HEAPU32, 1024, 0)|0); + $temp = (Atomics_xor(HEAP16, 1024, 0)|0); + $temp = (Atomics_xor(HEAPU8, 1024, 0)|0); + } + + return { test: test }; +}) +; |