diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-05-10 17:48:14 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-05-10 17:48:14 -0700 |
commit | a6f1fec8fb8c6fde6f5178efa236fd2b73999c63 (patch) | |
tree | b11d6f5574c78a3cbb1d526e1bfab2b98b83b9ea /tools/eliminator | |
parent | 32444e9c75d082c97c6ee7fbca2ca53982a54957 (diff) |
do not eliminate if there is a switch
Diffstat (limited to 'tools/eliminator')
-rw-r--r-- | tools/eliminator/asm-eliminator-test-output.js | 10 | ||||
-rw-r--r-- | tools/eliminator/asm-eliminator-test.js | 9 |
2 files changed, 14 insertions, 5 deletions
diff --git a/tools/eliminator/asm-eliminator-test-output.js b/tools/eliminator/asm-eliminator-test-output.js index 25ab23e4..8da7a5bc 100644 --- a/tools/eliminator/asm-eliminator-test-output.js +++ b/tools/eliminator/asm-eliminator-test-output.js @@ -107,18 +107,22 @@ function label() { } } function switchy() { - var no = 0, yes = 0; + var no = 0, yes = 0, a = 0, b = 0; while (1) switch (label | 0) { - case x: + case 1: no = 100; break; - case y: + case 2: yes = 111; yes = yes * 2; print(yes); yes--; print(yes / 2); continue; + case 3: + a = 5; + b = a; + break; } } function confuusion() { diff --git a/tools/eliminator/asm-eliminator-test.js b/tools/eliminator/asm-eliminator-test.js index e068e860..5f75e9c1 100644 --- a/tools/eliminator/asm-eliminator-test.js +++ b/tools/eliminator/asm-eliminator-test.js @@ -143,17 +143,22 @@ function label() { } function switchy() { var no = 0, yes = 0; + var a = 0, b = 0; while (1) switch (label | 0) { - case x: + case 1: no = 100; // eliminatable in theory, but eliminator does not look into switch. must leave def above as well. break; - case y: + case 2: yes = 111; yes = yes*2; print(yes); yes--; print(yes/2); continue; + case 3: + a = 5; + b = a; + break; } } function confuusion() { |