diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-08-29 11:30:11 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-09-03 14:41:30 -0700 |
commit | e33179a36b1d6867e0a5c59a8e5a9e04b1b8459f (patch) | |
tree | 0fce39c7f1c35638ca07cc21f0d4eb2579bef650 /emscripten.py | |
parent | 02c15ea091feacdd0c40a291346a3e1d7cad7e3b (diff) |
fix asm validation of side modules
Diffstat (limited to 'emscripten.py')
-rwxr-xr-x | emscripten.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/emscripten.py b/emscripten.py index 0a13d7ad..4940dc3b 100755 --- a/emscripten.py +++ b/emscripten.py @@ -444,6 +444,11 @@ def emscript(infile, settings, outfile, libraries=[], compiler_engine=None, forwarded_json['Functions']['libraryFunctions'].get('llvm_ctlz_i32'): basic_vars += ['cttz_i8', 'ctlz_i8'] + if settings.get('DLOPEN_SUPPORT'): + for sig in last_forwarded_json['Functions']['tables'].iterkeys(): + basic_vars.append('F_BASE_%s' % sig) + asm_setup += ' var F_BASE_%s = %s;\n' % (sig, 'FUNCTION_TABLE_OFFSET' if settings.get('SIDE_MODULE') else '0') + '\n' + asm_runtime_funcs = ['stackAlloc', 'stackSave', 'stackRestore', 'setThrew'] + ['setTempRet%d' % i for i in range(10)] # function tables def asm_coerce(value, sig): @@ -635,8 +640,6 @@ Runtime.stackRestore = function(top) { asm['stackRestore'](top) }; Runtime.registerFunctions(asm, %(max_mask)d+1, %(sigs)s, Module); Module.SYMBOL_TABLE = SYMBOL_TABLE; ''' % { 'max_mask': max_mask, 'sigs': str(map(str, last_forwarded_json['Functions']['tables'].keys())) }) - for sig in last_forwarded_json['Functions']['tables'].iterkeys(): - funcs_js.append(' var F_BASE_%s = %s;\n' % (sig, 'FUNCTION_TABLE_OFFSET' if settings.get('SIDE_MODULE') else '0')) else: function_tables_defs = '\n'.join([table for table in last_forwarded_json['Functions']['tables'].itervalues()]) |