aboutsummaryrefslogtreecommitdiff
path: root/tools/js-optimizer.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-07-08 16:00:38 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-07-08 16:00:38 -0700
commitcc89726efd272f4d47a25c2204cd635163c8522a (patch)
treea0212413c03b20ed87143ad7e3e6d6178a1961ce /tools/js-optimizer.js
parentec9b04b118b2460ebb16d64fcff568598fcca1ba (diff)
emit statements in outlining
Diffstat (limited to 'tools/js-optimizer.js')
-rw-r--r--tools/js-optimizer.js6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js
index 27253108..d81ae381 100644
--- a/tools/js-optimizer.js
+++ b/tools/js-optimizer.js
@@ -3006,9 +3006,11 @@ function outline(ast) {
var varInfo = analyzeVariables(func, asmData, code);
var spills = [];
for (var v in varInfo.reads) {
- spills.push(['assign', true,['sub', ['name', getAsmType(asmData, v) == ASM_INT ? 'HEAP32' : 'HEAPF32'], ['binary', '>>', ['binary', '+', ['name', 'sp'], ['num', asmData.stackPos[v]]], ['num', '2']]], ['name', v]]);
+ if (v != 'sp') {
+ spills.push(['stat', ['assign', true,['sub', ['name', getAsmType(asmData, v) == ASM_INT ? 'HEAP32' : 'HEAPF32'], ['binary', '>>', ['binary', '+', ['name', 'sp'], ['num', asmData.stackPos[v]]], ['num', '2']]], ['name', v]]]);
+ }
}
- var callCode = ['call', ['name', 'outlinedCode'], [['name', 'param1']]];
+ var callCode = ['stat', ['call', ['name', 'outlinedCode'], [['name', 'sp']]]];
stats.splice.apply(stats, [start, end-start+1].concat(spills).concat([callCode]));
return [emptyNode()];
}