Reland VectorICs: ia32 store ics need a virtual register.
authormvstanton <mvstanton@chromium.org>
Tue, 15 Sep 2015 10:14:11 +0000 (03:14 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 15 Sep 2015 10:14:30 +0000 (10:14 +0000)
commit1e00bb57a2969e3e428a1d552116752a95c06022
tree7ff61b5c46d93516703778479a22b21efd807c02
parent053d7f49e525e7b0aaab95947e8759d878ae195e
Reland VectorICs: ia32 store ics need a virtual register.

(reason for revert/reland: patch incorrectly left --vector-stores flag
 on, helpfully revealing some gcstress issues to look at, but they
 don't need to block this CL).

Some pretty hacky code was used to carry out the tail-call
handler dispatch on ia32 vector stores due to a lack
of free registers. It really tanks performance. A better
approach is to use a virtual register on the isolate.

BUG=
TBR=jkummerow@chromium.org, vogelheim@chromium.org

Review URL: https://codereview.chromium.org/1346573002

Cr-Commit-Position: refs/heads/master@{#30737}
src/assembler.cc
src/assembler.h
src/ia32/code-stubs-ia32.cc
src/ic/ia32/stub-cache-ia32.cc
src/isolate.cc
src/isolate.h
src/snapshot/serialize.cc