aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-11-28 17:01:02 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-12-07 14:23:19 -0800
commit19d06326b6cbfe729ab9613a22a4246aa95b9f52 (patch)
tree25da215f89dceca38fadbb6aaa8bd672349103e0
parented00768f160aa4674ffedc74b98e6194da0493df (diff)
move asm.js function tables into asm
-rwxr-xr-xemscripten.py13
-rw-r--r--src/modules.js2
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
});
}