| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_IC_HANDLER_COMPILER_H_ | 5 #ifndef V8_IC_HANDLER_COMPILER_H_ |
| 6 #define V8_IC_HANDLER_COMPILER_H_ | 6 #define V8_IC_HANDLER_COMPILER_H_ |
| 7 | 7 |
| 8 #include "src/ic/access-compiler.h" | 8 #include "src/ic/access-compiler.h" |
| 9 #include "src/ic/ic-state.h" | 9 #include "src/ic/ic-state.h" |
| 10 | 10 |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 class NamedLoadHandlerCompiler : public PropertyHandlerCompiler { | 127 class NamedLoadHandlerCompiler : public PropertyHandlerCompiler { |
| 128 public: | 128 public: |
| 129 NamedLoadHandlerCompiler(Isolate* isolate, Handle<Map> map, | 129 NamedLoadHandlerCompiler(Isolate* isolate, Handle<Map> map, |
| 130 Handle<JSObject> holder, | 130 Handle<JSObject> holder, |
| 131 CacheHolderFlag cache_holder) | 131 CacheHolderFlag cache_holder) |
| 132 : PropertyHandlerCompiler(isolate, Code::LOAD_IC, map, holder, | 132 : PropertyHandlerCompiler(isolate, Code::LOAD_IC, map, holder, |
| 133 cache_holder) {} | 133 cache_holder) {} |
| 134 | 134 |
| 135 virtual ~NamedLoadHandlerCompiler() {} | 135 virtual ~NamedLoadHandlerCompiler() {} |
| 136 | 136 |
| 137 Handle<Code> CompileLoadField(Handle<Name> name, FieldIndex index); | |
| 138 | |
| 139 Handle<Code> CompileLoadCallback(Handle<Name> name, | 137 Handle<Code> CompileLoadCallback(Handle<Name> name, |
| 140 Handle<AccessorInfo> callback, | 138 Handle<AccessorInfo> callback, |
| 141 Handle<Code> slow_stub); | 139 Handle<Code> slow_stub); |
| 142 | 140 |
| 143 Handle<Code> CompileLoadCallback(Handle<Name> name, | 141 Handle<Code> CompileLoadCallback(Handle<Name> name, |
| 144 const CallOptimization& call_optimization, | 142 const CallOptimization& call_optimization, |
| 145 int accessor_index, Handle<Code> slow_stub); | 143 int accessor_index, Handle<Code> slow_stub); |
| 146 | 144 |
| 147 Handle<Code> CompileLoadConstant(Handle<Name> name, int constant_index); | |
| 148 | |
| 149 // The LookupIterator is used to perform a lookup behind the interceptor. If | 145 // The LookupIterator is used to perform a lookup behind the interceptor. If |
| 150 // the iterator points to a LookupIterator::PROPERTY, its access will be | 146 // the iterator points to a LookupIterator::PROPERTY, its access will be |
| 151 // inlined. | 147 // inlined. |
| 152 Handle<Code> CompileLoadInterceptor(LookupIterator* it); | 148 Handle<Code> CompileLoadInterceptor(LookupIterator* it); |
| 153 | 149 |
| 154 Handle<Code> CompileLoadViaGetter(Handle<Name> name, int accessor_index, | 150 Handle<Code> CompileLoadViaGetter(Handle<Name> name, int accessor_index, |
| 155 int expected_arguments); | 151 int expected_arguments); |
| 156 | 152 |
| 157 Handle<Code> CompileLoadGlobal(Handle<PropertyCell> cell, Handle<Name> name, | 153 Handle<Code> CompileLoadGlobal(Handle<PropertyCell> cell, Handle<Name> name, |
| 158 bool is_configurable); | 154 bool is_configurable); |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 if (Descriptor::kPassLastArgsOnStack) { | 233 if (Descriptor::kPassLastArgsOnStack) { |
| 238 ZapStackArgumentsRegisterAliases(); | 234 ZapStackArgumentsRegisterAliases(); |
| 239 } | 235 } |
| 240 #endif | 236 #endif |
| 241 } | 237 } |
| 242 | 238 |
| 243 virtual ~NamedStoreHandlerCompiler() {} | 239 virtual ~NamedStoreHandlerCompiler() {} |
| 244 | 240 |
| 245 void ZapStackArgumentsRegisterAliases(); | 241 void ZapStackArgumentsRegisterAliases(); |
| 246 | 242 |
| 247 Handle<Code> CompileStoreTransition(Handle<Map> transition, | |
| 248 Handle<Name> name); | |
| 249 Handle<Code> CompileStoreField(LookupIterator* it); | |
| 250 Handle<Code> CompileStoreCallback(Handle<JSObject> object, Handle<Name> name, | 243 Handle<Code> CompileStoreCallback(Handle<JSObject> object, Handle<Name> name, |
| 251 Handle<AccessorInfo> callback, | 244 Handle<AccessorInfo> callback, |
| 252 LanguageMode language_mode); | 245 LanguageMode language_mode); |
| 253 Handle<Code> CompileStoreCallback(Handle<JSObject> object, Handle<Name> name, | 246 Handle<Code> CompileStoreCallback(Handle<JSObject> object, Handle<Name> name, |
| 254 const CallOptimization& call_optimization, | 247 const CallOptimization& call_optimization, |
| 255 int accessor_index, Handle<Code> slow_stub); | 248 int accessor_index, Handle<Code> slow_stub); |
| 256 Handle<Code> CompileStoreViaSetter(Handle<JSObject> object, Handle<Name> name, | 249 Handle<Code> CompileStoreViaSetter(Handle<JSObject> object, Handle<Name> name, |
| 257 int accessor_index, | 250 int accessor_index, |
| 258 int expected_arguments); | 251 int expected_arguments); |
| 259 | 252 |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 | 295 |
| 303 static Handle<Object> GetKeyedLoadHandler(Handle<Map> receiver_map, | 296 static Handle<Object> GetKeyedLoadHandler(Handle<Map> receiver_map, |
| 304 Isolate* isolate); | 297 Isolate* isolate); |
| 305 void CompileElementHandlers(MapHandleList* receiver_maps, | 298 void CompileElementHandlers(MapHandleList* receiver_maps, |
| 306 List<Handle<Object>>* handlers); | 299 List<Handle<Object>>* handlers); |
| 307 }; | 300 }; |
| 308 } // namespace internal | 301 } // namespace internal |
| 309 } // namespace v8 | 302 } // namespace v8 |
| 310 | 303 |
| 311 #endif // V8_IC_HANDLER_COMPILER_H_ | 304 #endif // V8_IC_HANDLER_COMPILER_H_ |
| OLD | NEW |