ia32 LGTM with comments below.
http://codereview.chromium.org/6852015/diff/1/src/hydrogen-instructions.h File src/hydrogen-instructions.h (right): http://codereview.chromium.org/6852015/diff/1/src/hydrogen-instructions.h#newcode1719 src/hydrogen-instructions.h:1719: } Good idea! We should look where else we can make use of inferred types. http://codereview.chromium.org/6852015/diff/1/src/ia32/lithium-ia32.cc File src/ia32/lithium-ia32.cc (right): http://codereview.chromium.org/6852015/diff/1/src/ia32/lithium-ia32.cc#newcode2006 src/ia32/lithium-ia32.cc:2006: LOperand* left = UseOrConstant(instr->left()); This should be UseOrConstantAtStart. Otherwise we can't allocate a register if available since all are blocked because of the call. http://codereview.chromium.org/6852015/diff/1/src/ic.cc File src/ic.cc (right): http://codereview.chromium.org/6852015/diff/1/src/ic.cc#newcode2029 src/ic.cc:2029: } I think this is correct. Personally I like the approach better where we setup the enum values in a way so that join becomes a & operator. Maybe that would be a refactoring to do when cleaning up the duplicated type-info and HType code? http://codereview.chromium.org/6852015/diff/1/src/ic.cc#newcode2030 src/ic.cc:2030: if (x >= y) return x; Maybe have x > y here since you handle == cases already above. http://codereview.chromium.org/6852015/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
