Reviewers: Vitaly, Kasper Lund,

Description:
Second attempt: Improve our type feedback by recogizining never-executed IC
calls for binary operations.

This is an improved version of my earlier change r5970. It avoids degrading the
non-optimized code.

Initially we emit a conditional branch that is either always- or never-taken
after a smi-check (depending on whether we test for smi for for non-smi)
Since test-eax always sets the carry-flag to 0 we use jump-if-carry and
jump-if-not-carry.

The first invocation of the stub patches a jc with a jz and
jnc with a jnz-instruction so that the code looks exactly as it was
without patching. The only difference is the test- or nop-instruction
after the IC-call.


Please review this at http://codereview.chromium.org/5763004/

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
  M     src/arm/ic-arm.cc
  M     src/full-codegen.h
  M     src/ia32/assembler-ia32.h
  M     src/ia32/code-stubs-ia32.h
  M     src/ia32/code-stubs-ia32.cc
  M     src/ia32/full-codegen-ia32.cc
  M     src/ia32/ic-ia32.cc
  M     src/ia32/lithium-codegen-ia32.cc
  M     src/ic.h
  M     src/ic.cc
  M     src/type-info.cc
  M     src/x64/ic-x64.cc


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to