| Index: src/ic/handler-compiler.h
|
| diff --git a/src/ic/handler-compiler.h b/src/ic/handler-compiler.h
|
| index 4fedd4e8d78c7127bff6feef5becf58dd724ecb8..cc867249a1b7e65ce15097eb0391ce041ee35d1b 100644
|
| --- a/src/ic/handler-compiler.h
|
| +++ b/src/ic/handler-compiler.h
|
| @@ -30,6 +30,11 @@ class PropertyHandlerCompiler : public PropertyAccessCompiler {
|
|
|
| virtual ~PropertyHandlerCompiler() {}
|
|
|
| + // TODO(mvstanton): the frontend header in FLAG_vector_ic case needs to
|
| + // save the vector and slot registers on the stack, and the footer would
|
| + // pop them before calling the miss helper. Also, these regs need to be popped
|
| + // before any returns. P'rhaps the popping can be done at the end of the
|
| + // footer, eh? (idea from Toon).
|
| virtual Register FrontendHeader(Register object_reg, Handle<Name> name,
|
| Label* miss) {
|
| UNREACHABLE();
|
| @@ -42,6 +47,15 @@ class PropertyHandlerCompiler : public PropertyAccessCompiler {
|
| void NonexistentFrontendHeader(Handle<Name> name, Label* miss,
|
| Register scratch1, Register scratch2);
|
|
|
| + // When FLAG_vector_ics is true, handlers that have the possibility of missing
|
| + // will need to save and pass these to miss handlers.
|
| + void PushVectorAndSlot();
|
| + void PushVectorAndSlot(Register vector, Register slot);
|
| + void PopVectorAndSlot();
|
| + void PopVectorAndSlot(Register vector, Register slot);
|
| +
|
| + void DiscardVectorAndSlot();
|
| +
|
| // TODO(verwaest): Make non-static.
|
| static void GenerateFastApiCall(MacroAssembler* masm,
|
| const CallOptimization& optimization,
|
|
|