aboutsummaryrefslogtreecommitdiff
path: root/tools/test-js-optimizer-asm-outline2-output.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-07-21 10:33:44 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-07-21 10:33:44 -0700
commitb11c3d7d5326bdbad7624e75a8bedfd8ade55a27 (patch)
treebe1be99fd039eef443374eeb9cdfa651b5150e97 /tools/test-js-optimizer-asm-outline2-output.js
parent0902d6c3707d3350f40a35ed04a9eb125f36fad5 (diff)
fix semantics of control variable handling in outlining: zero out when calling outlined funcitons, and right after using the value, so that we can handle nested outlined calls
Diffstat (limited to 'tools/test-js-optimizer-asm-outline2-output.js')
-rw-r--r--tools/test-js-optimizer-asm-outline2-output.js29
1 files changed, 22 insertions, 7 deletions
diff --git a/tools/test-js-optimizer-asm-outline2-output.js b/tools/test-js-optimizer-asm-outline2-output.js
index 72e219ad..4b7bb6e2 100644
--- a/tools/test-js-optimizer-asm-outline2-output.js
+++ b/tools/test-js-optimizer-asm-outline2-output.js
@@ -60,14 +60,19 @@ function _free($mem) {
sp = _free$1(sp) | 0;
$p_0 = HEAP32[sp + 216 >> 2] | 0;
$psize_0 = HEAP32[sp + 208 >> 2] | 0;
- if ((HEAP32[sp + 632 >> 2] | 0) == 5) {
+ tempValue = HEAP32[sp + 632 >> 2] | 0;
+ tempInt = HEAP32[sp + 640 >> 2] | 0;
+ tempDouble = +HEAPF32[sp + 640 >> 2];
+ HEAP32[sp + 632 >> 2] = 0;
+ HEAP32[sp + 640 >> 2] = 0;
+ if ((tempValue | 0) == 5) {
return;
}
- if ((HEAP32[sp + 632 >> 2] | 0) == 1) {
+ if ((tempValue | 0) == 1) {
break;
}
- if ((HEAP32[sp + 632 >> 2] | 0) == 2) {
- switch (HEAP32[sp + 640 >> 2] | 0) {
+ if ((tempValue | 0) == 2) {
+ switch (tempInt | 0) {
case 2:
{
break L621;
@@ -97,7 +102,12 @@ function _free($mem) {
HEAP32[sp + 0 >> 2] = $mem;
HEAP32[sp + 16 >> 2] = $10;
sp = _free$2(sp) | 0;
- if ((HEAP32[sp + 632 >> 2] | 0) == 5) {
+ tempValue = HEAP32[sp + 632 >> 2] | 0;
+ tempInt = HEAP32[sp + 640 >> 2] | 0;
+ tempDouble = +HEAPF32[sp + 640 >> 2];
+ HEAP32[sp + 632 >> 2] = 0;
+ HEAP32[sp + 640 >> 2] = 0;
+ if ((tempValue | 0) == 5) {
return;
}
}
@@ -569,11 +579,16 @@ function _free$2(sp) {
HEAP32[sp + 416 >> 2] = $psize_1;
sp = _free$0(sp) | 0;
$psize_1 = HEAP32[sp + 416 >> 2] | 0;
- if ((HEAP32[sp + 632 >> 2] | 0) == 5) {
+ tempValue = HEAP32[sp + 632 >> 2] | 0;
+ tempInt = HEAP32[sp + 640 >> 2] | 0;
+ tempDouble = +HEAPF32[sp + 640 >> 2];
+ HEAP32[sp + 632 >> 2] = 0;
+ HEAP32[sp + 640 >> 2] = 0;
+ if ((tempValue | 0) == 5) {
HEAP32[sp + 632 >> 2] = 5;
break OL;
}
- if ((HEAP32[sp + 632 >> 2] | 0) == 1) {
+ if ((tempValue | 0) == 1) {
break;
}
} else {