MIPS64: VectorICs: keyed element loads were kicking out non-smi keys unnecessarily
authorakos.palfi <akos.palfi@imgtec.com>
Mon, 23 Mar 2015 22:45:05 +0000 (15:45 -0700)
committerCommit bot <commit-bot@chromium.org>
Mon, 23 Mar 2015 22:45:17 +0000 (22:45 +0000)
commitfe0d860ba8e045080bef466d1611ec5ffdbf8498
tree8f6aa6e3322cfcbc0b7e382d3f687f49fe58453f
parent8d4c7fea0da916e50655bfbe0309e50b714b49c5
MIPS64: VectorICs: keyed element loads were kicking out non-smi keys unnecessarily

Port 6689cc27ebe60685c025de9ae1f09919093f8213

Original commit message:
Handlers should be in charge of this work. The change uncovered a bug in
vector-ics related to keyed loads into strings. It's important for
StringCharCodeAtGenerator, a helper used in full code and in
LoadIndexedStringStub (a handler) to protect the vector and slot registers
when it makes a runtime call to convert a HeapNumber to a Smi.

It's still possible for the handler to MISS after this call, perhaps due
to out of bounds access. In that case, the vector and slot registers need
to be delivered safely to the MISS handler.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27383}
src/mips64/code-stubs-mips64.cc
src/mips64/full-codegen-mips64.cc