aboutsummaryrefslogtreecommitdiff
path: root/tools/test-js-optimizer-asm-outline1-output.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-07-16 18:14:49 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-07-16 18:14:49 -0700
commit33ea873c9f04c4419818d44a4066602bfc712a0d (patch)
tree1119806ea55630fccb8a0fb4bbede4275dcb32e5 /tools/test-js-optimizer-asm-outline1-output.js
parentcf1180979015805a5ac62d2b6ebe5166771ea030 (diff)
fix labeled break/continue forwarding from outlined code
Diffstat (limited to 'tools/test-js-optimizer-asm-outline1-output.js')
-rw-r--r--tools/test-js-optimizer-asm-outline1-output.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/tools/test-js-optimizer-asm-outline1-output.js b/tools/test-js-optimizer-asm-outline1-output.js
index cbf6d8e6..0780484a 100644
--- a/tools/test-js-optimizer-asm-outline1-output.js
+++ b/tools/test-js-optimizer-asm-outline1-output.js
@@ -65,6 +65,37 @@ function lin5() {
}
return 20;
}
+function mix() {
+ main : while (1) {
+ c(1);
+ c(2);
+ c(3);
+ c(4);
+ c(5);
+ c(6);
+ mix$1(sp);
+ mix$0(sp);
+ if (HEAP32[sp + 0 >> 2] == 1) {
+ break;
+ }
+ if (HEAP32[sp + 0 >> 2] == 2) {
+ switch (HEAP32[sp + 8 >> 2]) {
+ case 1:
+ break main;
+ }
+ }
+ if (HEAP32[sp + 0 >> 2] == 3) {
+ continue;
+ }
+ if (HEAP32[sp + 0 >> 2] == 4) {
+ switch (HEAP32[sp + 8 >> 2]) {
+ case 2:
+ continue main;
+ }
+ }
+ }
+ return 20;
+}
function lin$0(sp) {
sp = sp | 0;
c(13);
@@ -183,4 +214,33 @@ function lin5$1(sp) {
c(11);
c(12);
}
+function mix$0(sp) {
+ sp = sp | 0;
+ OL : do {
+ c(15);
+ c(16);
+ c(17);
+ HEAP32[sp + 8 >> 2] = 1, HEAP32[sp + 0 >> 2] = 2, break OL;
+ c(18);
+ HEAP32[sp + 0 >> 2] = 1, break OL;
+ while (1) {
+ break;
+ }
+ c(19);
+ HEAP32[sp + 0 >> 2] = 3, break OL;
+ c(20);
+ HEAP32[sp + 8 >> 2] = 2, HEAP32[sp + 0 >> 2] = 4, break OL;
+ } while (0);
+}
+function mix$1(sp) {
+ sp = sp | 0;
+ c(7);
+ c(8);
+ c(9);
+ c(10);
+ c(11);
+ c(12);
+ c(13);
+ c(14);
+}