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

Reply via email to