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, |