| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_STUB_CACHE_H_ | 5 #ifndef V8_STUB_CACHE_H_ |
| 6 #define V8_STUB_CACHE_H_ | 6 #define V8_STUB_CACHE_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/arguments.h" | 9 #include "src/arguments.h" |
| 10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 Handle<HeapType> type, | 283 Handle<HeapType> type, |
| 284 Handle<Code> handler, | 284 Handle<Code> handler, |
| 285 ExtraICState extra_ic_state); | 285 ExtraICState extra_ic_state); |
| 286 static Handle<Code> ComputePolymorphic(Code::Kind kind, TypeHandleList* types, | 286 static Handle<Code> ComputePolymorphic(Code::Kind kind, TypeHandleList* types, |
| 287 CodeHandleList* handlers, | 287 CodeHandleList* handlers, |
| 288 int number_of_valid_maps, | 288 int number_of_valid_maps, |
| 289 Handle<Name> name, | 289 Handle<Name> name, |
| 290 ExtraICState extra_ic_state); | 290 ExtraICState extra_ic_state); |
| 291 | 291 |
| 292 // Keyed | 292 // Keyed |
| 293 static Handle<Code> ComputeKeyedLoad(Isolate* isolate, InlineCacheState ic_sta
te, |
| 294 ExtraICState extra_state); |
| 293 static Handle<Code> ComputeKeyedLoadMonomorphic(Handle<Map> receiver_map); | 295 static Handle<Code> ComputeKeyedLoadMonomorphic(Handle<Map> receiver_map); |
| 294 | 296 |
| 295 static Handle<Code> ComputeKeyedStoreMonomorphic( | 297 static Handle<Code> ComputeKeyedStoreMonomorphic( |
| 296 Handle<Map> receiver_map, StrictMode strict_mode, | 298 Handle<Map> receiver_map, StrictMode strict_mode, |
| 297 KeyedAccessStoreMode store_mode); | 299 KeyedAccessStoreMode store_mode); |
| 298 static Handle<Code> ComputeKeyedLoadPolymorphic(MapHandleList* receiver_maps); | 300 static Handle<Code> ComputeKeyedLoadPolymorphic(MapHandleList* receiver_maps); |
| 299 static Handle<Code> ComputeKeyedStorePolymorphic( | 301 static Handle<Code> ComputeKeyedStorePolymorphic( |
| 300 MapHandleList* receiver_maps, KeyedAccessStoreMode store_mode, | 302 MapHandleList* receiver_maps, KeyedAccessStoreMode store_mode, |
| 301 StrictMode strict_mode); | 303 StrictMode strict_mode); |
| 302 | 304 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 313 extra_ic_state_(extra_ic_state) {} | 315 extra_ic_state_(extra_ic_state) {} |
| 314 | 316 |
| 315 static Handle<Code> Find(Handle<Name> name, Handle<Map> stub_holder_map, | 317 static Handle<Code> Find(Handle<Name> name, Handle<Map> stub_holder_map, |
| 316 Code::Kind kind, | 318 Code::Kind kind, |
| 317 ExtraICState extra_ic_state = kNoExtraICState, | 319 ExtraICState extra_ic_state = kNoExtraICState, |
| 318 CacheHolderFlag cache_holder = kCacheOnReceiver); | 320 CacheHolderFlag cache_holder = kCacheOnReceiver); |
| 319 | 321 |
| 320 Handle<Code> CompileLoadInitialize(Code::Flags flags); | 322 Handle<Code> CompileLoadInitialize(Code::Flags flags); |
| 321 Handle<Code> CompileLoadPreMonomorphic(Code::Flags flags); | 323 Handle<Code> CompileLoadPreMonomorphic(Code::Flags flags); |
| 322 Handle<Code> CompileLoadMegamorphic(Code::Flags flags); | 324 Handle<Code> CompileLoadMegamorphic(Code::Flags flags); |
| 325 |
| 326 Handle<Code> CompileKeyedLoadInitialize(Code::Flags flags); |
| 327 Handle<Code> CompileKeyedLoadPreMonomorphic(Code::Flags flags); |
| 328 Handle<Code> CompileKeyedLoadMegamorphic(Code::Flags flags); |
| 329 Handle<Code> CompileKeyedLoadGeneric(Code::Flags flags); |
| 330 |
| 323 Handle<Code> CompileStoreInitialize(Code::Flags flags); | 331 Handle<Code> CompileStoreInitialize(Code::Flags flags); |
| 324 Handle<Code> CompileStorePreMonomorphic(Code::Flags flags); | 332 Handle<Code> CompileStorePreMonomorphic(Code::Flags flags); |
| 325 Handle<Code> CompileStoreGeneric(Code::Flags flags); | 333 Handle<Code> CompileStoreGeneric(Code::Flags flags); |
| 326 Handle<Code> CompileStoreMegamorphic(Code::Flags flags); | 334 Handle<Code> CompileStoreMegamorphic(Code::Flags flags); |
| 327 | 335 |
| 328 Handle<Code> CompileMonomorphic(Handle<HeapType> type, Handle<Code> handler, | 336 Handle<Code> CompileMonomorphic(Handle<HeapType> type, Handle<Code> handler, |
| 329 Handle<Name> name, IcCheckType check); | 337 Handle<Name> name, IcCheckType check); |
| 330 Handle<Code> CompilePolymorphic(TypeHandleList* types, | 338 Handle<Code> CompilePolymorphic(TypeHandleList* types, |
| 331 CodeHandleList* handlers, Handle<Name> name, | 339 CodeHandleList* handlers, Handle<Name> name, |
| 332 Code::StubType type, IcCheckType check); | 340 Code::StubType type, IcCheckType check); |
| (...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 675 Handle<JSFunction> constant_function_; | 683 Handle<JSFunction> constant_function_; |
| 676 bool is_simple_api_call_; | 684 bool is_simple_api_call_; |
| 677 Handle<FunctionTemplateInfo> expected_receiver_type_; | 685 Handle<FunctionTemplateInfo> expected_receiver_type_; |
| 678 Handle<CallHandlerInfo> api_call_info_; | 686 Handle<CallHandlerInfo> api_call_info_; |
| 679 }; | 687 }; |
| 680 | 688 |
| 681 | 689 |
| 682 } } // namespace v8::internal | 690 } } // namespace v8::internal |
| 683 | 691 |
| 684 #endif // V8_STUB_CACHE_H_ | 692 #endif // V8_STUB_CACHE_H_ |
| OLD | NEW |