diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-11-28 17:01:02 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-12-07 14:23:19 -0800 |
commit | 19d06326b6cbfe729ab9613a22a4246aa95b9f52 (patch) | |
tree | 25da215f89dceca38fadbb6aaa8bd672349103e0 | |
parent | ed00768f160aa4674ffedc74b98e6194da0493df (diff) |
move asm.js function tables into asm
-rwxr-xr-x | emscripten.py | 13 | ||||
-rw-r--r-- | src/modules.js | 2 |
2 files changed, 10 insertions, 5 deletions
diff --git a/emscripten.py b/emscripten.py index 50a1fb97..065d17ea 100755 --- a/emscripten.py +++ b/emscripten.py @@ -270,6 +270,8 @@ var asm = (function(env, buffer) { var HEAPF64 = new env.Float64Array(buffer); ''' + asm_globals + '\n' + funcs_js.replace('\n', '\n ') + ''' + {{{ FUNCTION_TABLES }}} + return %s; })(%s, buffer); %s; @@ -300,8 +302,6 @@ var asm = (function(env, buffer) { pre = None #if DEBUG: outfile.write('// funcs\n') - outfile.write(blockaddrsize(indexize(funcs_js))) - funcs_js = None # forward forwarded_data = json.dumps(forwarded_json) @@ -316,8 +316,13 @@ var asm = (function(env, buffer) { out = shared.run_js(compiler, shared.COMPILER_ENGINE, [settings_file, post_file, 'post', forwarded_file] + libraries, stdout=subprocess.PIPE, cwd=path_from_root('src')) post, forwarded_data = out.split('//FORWARDED_DATA:') forwarded_json = json.loads(forwarded_data) - outfile.write(forwarded_json['Functions']['tables']) - #if DEBUG: outfile.write('// post\n') + + if settings.get('ASM_JS'): + funcs_js = funcs_js.replace('{{{ FUNCTION_TABLES }}}', forwarded_json['Functions']['tables'].replace('\n', '\n ')) + else: + outfile.write(forwarded_json['Functions']['tables']) + outfile.write(blockaddrsize(indexize(funcs_js))) + funcs_js = None outfile.write(indexize(post)) if DEBUG: print >> sys.stderr, ' emscript: phase 3 took %s seconds' % (time.time() - t) diff --git a/src/modules.js b/src/modules.js index 6847e1de..5bcf614f 100644 --- a/src/modules.js +++ b/src/modules.js @@ -260,7 +260,7 @@ var Functions = { generateIndexing: function() { var tables = {}; if (ASM_JS) { - ['x', 'ii'].forEach(function(sig) { // add some default signatures that are used in the library + ['ii'].forEach(function(sig) { // add some default signatures that are used in the library tables[sig] = zeros(this.nextIndex); // TODO: make them compact }); } |