summaryrefslogtreecommitdiff
path: root/test/dynamicLibrary.asm.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-12-30 13:41:02 -0800
committerAlon Zakai <alonzakai@gmail.com>2016-12-30 14:02:14 -0800
commit585fd8af473354b9dfa7e57c5c6af396fa60945e (patch)
treec84871881aec6f957c9e3da32191b7c66859705b /test/dynamicLibrary.asm.js
parentc25d24447aeede9df0e76aac5176cf525522343b (diff)
downloadbinaryen-585fd8af473354b9dfa7e57c5c6af396fa60945e.tar.gz
binaryen-585fd8af473354b9dfa7e57c5c6af396fa60945e.tar.bz2
binaryen-585fd8af473354b9dfa7e57c5c6af396fa60945e.zip
memoryBase and tableBase should not be mutable, as we need to use them in segment/element offsets
Diffstat (limited to 'test/dynamicLibrary.asm.js')
-rw-r--r--test/dynamicLibrary.asm.js136
1 files changed, 136 insertions, 0 deletions
diff --git a/test/dynamicLibrary.asm.js b/test/dynamicLibrary.asm.js
new file mode 100644
index 000000000..142fd7c98
--- /dev/null
+++ b/test/dynamicLibrary.asm.js
@@ -0,0 +1,136 @@
+Module["asm"] = (function(global, env, buffer) {
+ 'almost 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 memoryBase=env.memoryBase|0;
+ var tableBase=env.tableBase|0;
+
+ var STACKTOP = 0, 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, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0;
+ var tempRet0 = 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 setTempRet0=env.setTempRet0;
+ var getTempRet0=env.getTempRet0;
+ var _puts=env._puts;
+ var tempFloat = Math_fround(0);
+ const f0 = Math_fround(0);
+
+// EMSCRIPTEN_START_FUNCS
+
+function stackAlloc(size) {
+ size = size|0;
+ var ret = 0;
+ ret = STACKTOP;
+ STACKTOP = (STACKTOP + size)|0;
+ STACKTOP = (STACKTOP + 15)&-16;
+ if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0);
+
+ return ret|0;
+}
+function stackSave() {
+ return STACKTOP|0;
+}
+function stackRestore(top) {
+ top = top|0;
+ STACKTOP = top;
+}
+function establishStackSpace(stackBase, stackMax) {
+ stackBase = stackBase|0;
+ stackMax = stackMax|0;
+ STACKTOP = stackBase;
+ STACK_MAX = stackMax;
+}
+
+function setThrew(threw, value) {
+ threw = threw|0;
+ value = value|0;
+ if ((__THREW__|0) == 0) {
+ __THREW__ = threw;
+ threwValue = value;
+ }
+}
+
+function ___cxx_global_var_init() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ __ZN3FooC2Ev((memoryBase + (5242912) | 0));
+ return;
+}
+function __ZN3FooC2Ev($0) {
+ $0 = $0|0;
+ var $1 = 0, label = 0, sp = 0;
+ sp = STACKTOP;
+ STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
+ $1 = $0;
+ (_puts(((memoryBase + (0) | 0)|0))|0);
+ STACKTOP = sp;return;
+}
+function __GLOBAL__sub_I_liblib_cpp() {
+ var label = 0, sp = 0;
+ sp = STACKTOP;
+ ___cxx_global_var_init();
+ return;
+}
+function runPostSets() {
+ var temp = 0;
+}
+function __post_instantiate() {
+ STACKTOP = (memoryBase + (32) | 0);
+ STACK_MAX = STACKTOP + 5242880 | 0;
+ runPostSets();
+ __GLOBAL__sub_I_liblib_cpp();
+}
+
+
+
+
+// EMSCRIPTEN_END_FUNCS
+
+
+ return { __ZN3FooC2Ev: __ZN3FooC2Ev, __post_instantiate: __post_instantiate, runPostSets: runPostSets, _global: 5242912 };
+})
+; \ No newline at end of file