Reviewers: Vyacheslav Egorov, danno, Paul Lind, kisg,
Description:
MIPS: Allow uint32 value on optimized frames if they are consumed by safe
operations.
Port r12367 (27f16c18)
Original commit message:
Safe operations are those that either do not observe unsignedness or have
special support for uint32 values:
- all binary bitwise operations: they perform ToInt32 on inputs;
- >> and << shifts: they perform ToInt32 on left hand side and ToUint32 on
right
hand side;
- >>> shift: it performs ToUint32 on both inputs;
- stores to integer external arrays (not pixel, float or double ones): these
stores are "bitwise";
- HChange: special support added for conversions of uint32 values to double
and
tagged values;
- HSimulate: special support added for deoptimization with uint32 values in
registers and stack slots;
- HPhi: phis that have only safe uses and only uint32 operands are uint32
themselves.
BUG=v8:2097
TEST=test/mjsunit/compiler/uint32.js
Please review this at https://chromiumcodereview.appspot.com/10874047/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/mips/lithium-codegen-mips.h
M src/mips/lithium-codegen-mips.cc
M src/mips/lithium-mips.h
M src/mips/lithium-mips.cc
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev