diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-07-08 16:00:38 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-07-08 16:00:38 -0700 |
commit | cc89726efd272f4d47a25c2204cd635163c8522a (patch) | |
tree | a0212413c03b20ed87143ad7e3e6d6178a1961ce /tools/js-optimizer.js | |
parent | ec9b04b118b2460ebb16d64fcff568598fcca1ba (diff) |
emit statements in outlining
Diffstat (limited to 'tools/js-optimizer.js')
-rw-r--r-- | tools/js-optimizer.js | 6 |
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()]; } |