Chromium Code Reviews| Index: src/stub-cache.h |
| diff --git a/src/stub-cache.h b/src/stub-cache.h |
| index 740a7c8e7f1bbf1a7781748045ac5579eb60e339..3f39a00bb8497ed4c47e1dd7ab1b59400b2f39ad 100644 |
| --- a/src/stub-cache.h |
| +++ b/src/stub-cache.h |
| @@ -401,7 +401,6 @@ class StubCache { |
| // Support functions for IC stubs for callbacks. |
| -DECLARE_RUNTIME_FUNCTION(MaybeObject*, LoadCallbackProperty); |
| DECLARE_RUNTIME_FUNCTION(MaybeObject*, StoreCallbackProperty); |
| @@ -535,58 +534,6 @@ class StubCompiler BASE_EMBEDDED { |
| MacroAssembler* masm() { return &masm_; } |
| void set_failure(Failure* failure) { failure_ = failure; } |
| - void GenerateLoadField(Handle<JSObject> object, |
| - Handle<JSObject> holder, |
| - Register receiver, |
| - Register scratch1, |
| - Register scratch2, |
| - Register scratch3, |
| - PropertyIndex index, |
| - Handle<String> name, |
| - Label* miss); |
| - |
| - void GenerateLoadCallback(Handle<JSObject> object, |
| - Handle<JSObject> holder, |
| - Register receiver, |
| - Register name_reg, |
| - Register scratch1, |
| - Register scratch2, |
| - Register scratch3, |
| - Register scratch4, |
| - Handle<AccessorInfo> callback, |
| - Handle<String> name, |
| - Label* miss); |
| - |
| - void GenerateDictionaryLoadCallback(Register receiver, |
| - Register name_reg, |
| - Register scratch1, |
| - Register scratch2, |
| - Register scratch3, |
| - Handle<AccessorInfo> callback, |
| - Handle<String> name, |
| - Label* miss); |
| - |
| - void GenerateLoadConstant(Handle<JSObject> object, |
| - Handle<JSObject> holder, |
| - Register receiver, |
| - Register scratch1, |
| - Register scratch2, |
| - Register scratch3, |
| - Handle<JSFunction> value, |
| - Handle<String> name, |
| - Label* miss); |
| - |
| - void GenerateLoadInterceptor(Handle<JSObject> object, |
| - Handle<JSObject> holder, |
| - LookupResult* lookup, |
| - Register receiver, |
| - Register name_reg, |
| - Register scratch1, |
| - Register scratch2, |
| - Register scratch3, |
| - Handle<String> name, |
| - Label* miss); |
| - |
| static void LookupPostInterceptor(Handle<JSObject> holder, |
| Handle<String> name, |
| LookupResult* lookup); |
| @@ -628,6 +575,30 @@ class BaseLoadStubCompiler: public StubCompiler { |
| Handle<String> name); |
| protected: |
| + Register GenerateHandlerFrontend(Handle<JSObject> object, |
| + Register object_reg, |
| + Handle<JSObject> holder, |
| + Handle<String> name, |
| + Label* success, |
| + Handle<AccessorInfo> callback, |
| + bool perform_initial_checks); |
|
Jakob Kummerow
2013/02/06 12:48:27
Let's use a two-value enum here to add a bit of cl
|
| + |
| + void GenerateLoadField(Register reg, |
| + Handle<JSObject> holder, |
| + PropertyIndex index); |
| + void GenerateLoadConstant(Handle<JSFunction> value); |
| + void GenerateLoadCallback(Register reg, Handle<AccessorInfo> callback); |
| + void GenerateLoadInterceptor(Register holder_reg, |
| + Handle<JSObject> object, |
| + Handle<JSObject> holder, |
| + LookupResult* lookup, |
| + Handle<String> name); |
| + void GenerateLoadPostInterceptor(Register reg, |
| + Handle<JSObject> interceptor_holder, |
| + Handle<String> name, |
| + LookupResult* lookup); |
| + |
| + |
| Register receiver() { return registers_[0]; } |
| Register name() { return registers_[1]; } |
| Register scratch1() { return registers_[2]; } |
| @@ -636,6 +607,9 @@ class BaseLoadStubCompiler: public StubCompiler { |
| Register scratch4() { return registers_[5]; } |
| private: |
| + void GenerateDictionaryLoadCallback(Register reg, |
| + Handle<AccessorInfo> callback, |
| + Label* miss); |
| virtual Code::Kind kind() = 0; |
| virtual void GenerateNameCheck(Handle<String> name, |
| Register name_reg, |