diff options
author | Dan Gohman <sunfish@google.com> | 2013-12-19 15:28:27 -0800 |
---|---|---|
committer | Dan Gohman <sunfish@google.com> | 2013-12-19 15:28:27 -0800 |
commit | 47e803a62598194891eae3aaef50f551f5fdc4bb (patch) | |
tree | 410eddbdd187e299057315d21140be19d3c0c77d /tools/test-js-optimizer-asm-pre-output.js | |
parent | 970cd15cd79a538b2dc404a16bfa2745915f6b17 (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.js | 8 |
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; |