diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-02-08 21:23:07 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-02-11 14:54:29 -0800 |
commit | 574bc2c9207f455518eab14bd1656cf9ba8b30c1 (patch) | |
tree | c1e6615e9b2d3bfb16e35db3eb8549130a8be4d1 /src/jsifier.js | |
parent | ee70b710083e7659f1391b239eb6365e4120d2d3 (diff) |
initial work on legalizing i64s
Diffstat (limited to 'src/jsifier.js')
-rw-r--r-- | src/jsifier.js | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/jsifier.js b/src/jsifier.js index 71533309..8bfe453b 100644 --- a/src/jsifier.js +++ b/src/jsifier.js @@ -497,16 +497,20 @@ function JSify(data, functionsOnly, givenFunctions) { func.JS = '\n'; + var paramIdents = func.params.map(function(param) { + return (param.intertype == 'varargs') ? null : toNiceIdent(param.ident); + }).filter(function(param) { return param != null; }) + if (CLOSURE_ANNOTATIONS) { func.JS += '/**\n'; - func.paramIdents.forEach(function(param) { + paramIdents.forEach(function(param) { func.JS += ' * @param {number} ' + param + '\n'; }); func.JS += ' * @return {number}\n' func.JS += ' */\n'; } - func.JS += 'function ' + func.ident + '(' + func.paramIdents.join(', ') + ') {\n'; + func.JS += 'function ' + func.ident + '(' + paramIdents.join(', ') + ') {\n'; if (PROFILE) { func.JS += ' if (PROFILING) { ' @@ -1046,11 +1050,6 @@ function JSify(data, functionsOnly, givenFunctions) { var hasVarArgs = isVarArgsFunctionType(type); var normalArgs = (hasVarArgs && !useJSArgs) ? countNormalArgs(type) : -1; - if (I64_MODE == 1 && ident in LLVM.INTRINSICS_32) { - // Some LLVM intrinsics use i64 where it is not needed, and would cause much overhead - params.forEach(function(param) { if (param.type == 'i64') param.type = 'i32' }); - } - params.forEach(function(param, i) { var val = finalizeParam(param); if (!hasVarArgs || useJSArgs || i < normalArgs) { @@ -1190,6 +1189,7 @@ function JSify(data, functionsOnly, givenFunctions) { print(postParts[0]); // Print out global variables and postsets TODO: batching + legalizedI64s = false; JSify(analyzer(intertyper(data.unparsedGlobalss[0].lines, true), true), true, Functions); data.unparsedGlobalss = null; |