aboutsummaryrefslogtreecommitdiff
path: root/tools/test-js-optimizer-asm-pre-output.js
diff options
context:
space:
mode:
authorDan Gohman <sunfish@google.com>2013-12-19 15:28:27 -0800
committerDan Gohman <sunfish@google.com>2013-12-19 15:28:27 -0800
commit47e803a62598194891eae3aaef50f551f5fdc4bb (patch)
tree410eddbdd187e299057315d21140be19d3c0c77d /tools/test-js-optimizer-asm-pre-output.js
parent970cd15cd79a538b2dc404a16bfa2745915f6b17 (diff)
Optimize away masks on stores to HEAP8 and HEAP16.
Optimize HEAP8[i] = x & 255 to HEAP8[i] = x, and similar for HEAP16.
Diffstat (limited to 'tools/test-js-optimizer-asm-pre-output.js')
-rw-r--r--tools/test-js-optimizer-asm-pre-output.js8
1 files changed, 5 insertions, 3 deletions
diff --git a/tools/test-js-optimizer-asm-pre-output.js b/tools/test-js-optimizer-asm-pre-output.js
index 2e3db000..0fa81050 100644
--- a/tools/test-js-optimizer-asm-pre-output.js
+++ b/tools/test-js-optimizer-asm-pre-output.js
@@ -58,12 +58,14 @@ function b($this, $__n) {
_memset($38 + $23 | 0, 0, $__n | 0, 1, 1213141516);
$40 = $23 + $__n | 0;
if ((HEAP8[$4 & 16777215] & 1) == 0) {
- HEAP8[$4 & 16777215] = $40 << 1 & 255;
+ HEAP8[$4 & 16777215] = $40 << 1;
} else {
HEAP32[($this + 4 & 16777215) >> 2] = $40;
}
HEAP8[$38 + $40 & 16777215] = 0;
HEAP32[$4] = ~HEAP32[$5];
+ HEAP8[$4] = HEAP32[$5];
+ HEAP16[$4] = HEAP32[$5];
HEAP32[$4] = ~HEAP32[$5];
HEAP32[$4] = ~HEAP32[$5];
h(~~g ^ -1);
@@ -240,10 +242,10 @@ function _main($argc, $argv) {
}
if (($i_09_i_i | 0) > (HEAP32[9600 + ($j_08_i_i << 2) >> 2] | 0)) {
$34 = $j_08_i_i + 1 | 0;
- HEAP8[$i_09_i_i + 8952 | 0] = $34 & 255;
+ HEAP8[$i_09_i_i + 8952 | 0] = $34;
$j_1_i_i = $34;
} else {
- HEAP8[$i_09_i_i + 8952 | 0] = $j_08_i_i & 255;
+ HEAP8[$i_09_i_i + 8952 | 0] = $j_08_i_i;
$j_1_i_i = $j_08_i_i;
}
$38 = $i_09_i_i + 1 | 0;