summaryrefslogtreecommitdiff
path: root/deps/v8/src/ic/handler-compiler.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/ic/handler-compiler.h')
-rw-r--r--deps/v8/src/ic/handler-compiler.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/deps/v8/src/ic/handler-compiler.h b/deps/v8/src/ic/handler-compiler.h
index 98c12ed7c0..2fe5870ef1 100644
--- a/deps/v8/src/ic/handler-compiler.h
+++ b/deps/v8/src/ic/handler-compiler.h
@@ -13,16 +13,17 @@ namespace internal {
class CallOptimization;
class PropertyHandlerCompiler : public PropertyAccessCompiler {
- public:
- static Handle<Code> Find(Handle<Name> name, Handle<Map> map, Code::Kind kind);
-
protected:
- PropertyHandlerCompiler(Isolate* isolate, Code::Kind kind, Handle<Map> map,
+ PropertyHandlerCompiler(Isolate* isolate, Type type, Handle<Map> map,
Handle<JSObject> holder)
- : PropertyAccessCompiler(isolate, kind), map_(map), holder_(holder) {}
+ : PropertyAccessCompiler(isolate, type), map_(map), holder_(holder) {}
virtual ~PropertyHandlerCompiler() {}
+ // The ICs that don't pass slot and vector through the stack have to
+ // save/restore them in the dispatcher.
+ bool ShouldPushPopSlotAndVector();
+
virtual Register FrontendHeader(Register object_reg, Handle<Name> name,
Label* miss) {
UNREACHABLE();
@@ -99,7 +100,7 @@ class PropertyHandlerCompiler : public PropertyAccessCompiler {
Register scratch1, Register scratch2,
Handle<Name> name, Label* miss);
- Handle<Code> GetCode(Code::Kind kind, Handle<Name> name);
+ Handle<Code> GetCode(Handle<Name> name);
Handle<Map> map() const { return map_; }
Handle<JSObject> holder() const { return holder_; }
@@ -113,7 +114,7 @@ class NamedLoadHandlerCompiler : public PropertyHandlerCompiler {
public:
NamedLoadHandlerCompiler(Isolate* isolate, Handle<Map> map,
Handle<JSObject> holder)
- : PropertyHandlerCompiler(isolate, Code::LOAD_IC, map, holder) {}
+ : PropertyHandlerCompiler(isolate, LOAD, map, holder) {}
virtual ~NamedLoadHandlerCompiler() {}
@@ -141,7 +142,7 @@ class NamedStoreHandlerCompiler : public PropertyHandlerCompiler {
explicit NamedStoreHandlerCompiler(Isolate* isolate, Handle<Map> map,
Handle<JSObject> holder)
- : PropertyHandlerCompiler(isolate, Code::STORE_IC, map, holder) {
+ : PropertyHandlerCompiler(isolate, STORE, map, holder) {
#ifdef DEBUG
if (Descriptor::kPassLastArgsOnStack) {
ZapStackArgumentsRegisterAliases();