• vegorov@chromium.org's avatar
    Allow uint32 value on optimized frames if they are consumed by safe operations. · f476d4d4
    vegorov@chromium.org authored
    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
    
    Review URL: https://chromiumcodereview.appspot.com/10778029
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    f476d4d4
Name
Last commit
Last update
benchmarks Loading commit data...
build Loading commit data...
include Loading commit data...
preparser Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
tools Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
SConstruct Loading commit data...