diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-11-13 18:29:12 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-12-07 14:23:18 -0800 |
commit | b140e7ee7354afcc215e1fc3593ea385e15ae92a (patch) | |
tree | f3662c10e5e6f5c56a669ad86eac170f91c8302a | |
parent | ab399ca532fb1deb7607f6cc2feb01186d75ec2b (diff) |
set up asm.js 'module'
-rwxr-xr-x | emscripten.py | 2 | ||||
-rw-r--r-- | src/postamble.js | 5 | ||||
-rw-r--r-- | src/preamble.js | 13 | ||||
-rw-r--r-- | src/settings.js | 2 |
4 files changed, 22 insertions, 0 deletions
diff --git a/emscripten.py b/emscripten.py index 15beb4ee..10834314 100755 --- a/emscripten.py +++ b/emscripten.py @@ -223,6 +223,8 @@ def emscript(infile, settings, outfile, libraries=[]): if DEBUG: t = time.time() funcs_js = ''.join([output[0] for output in outputs]) + if settings.get('ASM_JS'): # asm.js code must be indented + funcs_js = ' ' + funcs_js.replace('\n', '\n ') for func_js, curr_forwarded_data in outputs: # merge forwarded data diff --git a/src/postamble.js b/src/postamble.js index 144b5af9..25232879 100644 --- a/src/postamble.js +++ b/src/postamble.js @@ -1,4 +1,9 @@ +#if ASM_JS + return {}; +})({}, buffer); +#endif + // === Auto-generated postamble setup entry stuff === Module.callMain = function callMain(args) { diff --git a/src/preamble.js b/src/preamble.js index 9342bf2b..a27c9890 100644 --- a/src/preamble.js +++ b/src/preamble.js @@ -889,3 +889,16 @@ Module["preloadedAudios"] = {}; // maps url to audio data // === Body === +#if ASM_JS +var asm = (function(env, buffer) { + 'use asm'; + var HEAP8 = new env.Int8Array(buffer); + var HEAP16 = new env.Int16Array(buffer); + var HEAP32 = new env.Int32Array(buffer); + var HEAPU8 = new env.Uint8Array(buffer); + var HEAPU16 = new env.Uint16Array(buffer); + var HEAPU32 = new env.Uint32Array(buffer); + var HEAPF32 = new env.Float32Array(buffer); + var HEAPF64 = new env.Float64Array(buffer); +#endif + diff --git a/src/settings.js b/src/settings.js index 1d8805a8..1d115001 100644 --- a/src/settings.js +++ b/src/settings.js @@ -294,6 +294,8 @@ var HEADLESS = 0; // If 1, will include shim code that tries to 'fake' a browser // very partial - it is hard to fake a whole browser! - so // keep your expectations low for this to work. +var ASM_JS = 0; // If 1, generate code in asm.js format + var NECESSARY_BLOCKADDRS = []; // List of (function, block) for all block addresses that are taken. // Compiler debugging options |