Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: src/interface-descriptors.h

Issue 2313093002: [stubs] Port StoreTransitionStub and ElementsTransitionAndStoreStub to TurboFan. (Closed)
Patch Set: Addressing comments Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/ic/x87/handler-compiler-x87.cc ('k') | src/interface-descriptors.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_CALL_INTERFACE_DESCRIPTOR_H_ 5 #ifndef V8_CALL_INTERFACE_DESCRIPTOR_H_
6 #define V8_CALL_INTERFACE_DESCRIPTOR_H_ 6 #define V8_CALL_INTERFACE_DESCRIPTOR_H_
7 7
8 #include <memory> 8 #include <memory>
9 9
10 #include "src/assembler.h" 10 #include "src/assembler.h"
(...skipping 14 matching lines...) Expand all
25 V(OnStackWith5Args) \ 25 V(OnStackWith5Args) \
26 V(OnStackWith6Args) \ 26 V(OnStackWith6Args) \
27 V(OnStackWith7Args) \ 27 V(OnStackWith7Args) \
28 V(Load) \ 28 V(Load) \
29 V(LoadWithVector) \ 29 V(LoadWithVector) \
30 V(LoadGlobal) \ 30 V(LoadGlobal) \
31 V(LoadGlobalWithVector) \ 31 V(LoadGlobalWithVector) \
32 V(Store) \ 32 V(Store) \
33 V(StoreWithVector) \ 33 V(StoreWithVector) \
34 V(StoreTransition) \ 34 V(StoreTransition) \
35 V(VectorStoreTransition) \
36 V(VarArgFunction) \ 35 V(VarArgFunction) \
37 V(FastNewClosure) \ 36 V(FastNewClosure) \
38 V(FastNewFunctionContext) \ 37 V(FastNewFunctionContext) \
39 V(FastNewObject) \ 38 V(FastNewObject) \
40 V(FastNewRestParameter) \ 39 V(FastNewRestParameter) \
41 V(FastNewSloppyArguments) \ 40 V(FastNewSloppyArguments) \
42 V(FastNewStrictArguments) \ 41 V(FastNewStrictArguments) \
43 V(TypeConversion) \ 42 V(TypeConversion) \
44 V(Typeof) \ 43 V(Typeof) \
45 V(FastCloneRegExp) \ 44 V(FastCloneRegExp) \
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 DEFINE_PARAMETERS(kReceiver, kName, kValue, kSlot) 392 DEFINE_PARAMETERS(kReceiver, kName, kValue, kSlot)
394 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(StoreDescriptor, 393 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(StoreDescriptor,
395 CallInterfaceDescriptor) 394 CallInterfaceDescriptor)
396 395
397 static const Register ReceiverRegister(); 396 static const Register ReceiverRegister();
398 static const Register NameRegister(); 397 static const Register NameRegister();
399 static const Register ValueRegister(); 398 static const Register ValueRegister();
400 static const Register SlotRegister(); 399 static const Register SlotRegister();
401 }; 400 };
402 401
403
404 class StoreTransitionDescriptor : public StoreDescriptor { 402 class StoreTransitionDescriptor : public StoreDescriptor {
405 public: 403 public:
406 DEFINE_PARAMETERS(kReceiver, kName, kValue, kMap) 404 DEFINE_PARAMETERS(kReceiver, kName, kMap, kValue, kSlot, kVector)
407 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(StoreTransitionDescriptor, 405 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(StoreTransitionDescriptor,
408 StoreDescriptor) 406 StoreDescriptor)
409 407
410 static const Register MapRegister(); 408 static const Register MapRegister();
411 };
412
413
414 class VectorStoreTransitionDescriptor : public StoreDescriptor {
415 public:
416 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(VectorStoreTransitionDescriptor,
417 StoreDescriptor)
418
419 // TODO(ishell): use DEFINE_PARAMETERS macro here
420 // Extends StoreDescriptor with Map parameter.
421 enum ParameterIndices {
422 kReceiver = 0,
423 kName = 1,
424 kValue = 2,
425
426 kMap = 3,
427
428 kSlot = 4, // not present on ia32.
429 kVirtualSlotVector = 4,
430
431 kVector = 5
432 };
433
434 static const Register MapRegister();
435 static const Register SlotRegister(); 409 static const Register SlotRegister();
436 static const Register VectorRegister(); 410 static const Register VectorRegister();
411
412 static bool PassVectorAndSlotOnStack();
437 }; 413 };
438 414
439 class StoreWithVectorDescriptor : public StoreDescriptor { 415 class StoreWithVectorDescriptor : public StoreDescriptor {
440 public: 416 public:
441 DEFINE_PARAMETERS(kReceiver, kName, kValue, kSlot, kVector) 417 DEFINE_PARAMETERS(kReceiver, kName, kValue, kSlot, kVector)
442 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(StoreWithVectorDescriptor, 418 DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(StoreWithVectorDescriptor,
443 StoreDescriptor) 419 StoreDescriptor)
444 420
445 static const Register VectorRegister(); 421 static const Register VectorRegister();
446 }; 422 };
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
947 } // namespace v8 923 } // namespace v8
948 924
949 925
950 #if V8_TARGET_ARCH_ARM64 926 #if V8_TARGET_ARCH_ARM64
951 #include "src/arm64/interface-descriptors-arm64.h" 927 #include "src/arm64/interface-descriptors-arm64.h"
952 #elif V8_TARGET_ARCH_ARM 928 #elif V8_TARGET_ARCH_ARM
953 #include "src/arm/interface-descriptors-arm.h" 929 #include "src/arm/interface-descriptors-arm.h"
954 #endif 930 #endif
955 931
956 #endif // V8_CALL_INTERFACE_DESCRIPTOR_H_ 932 #endif // V8_CALL_INTERFACE_DESCRIPTOR_H_
OLDNEW
« no previous file with comments | « src/ic/x87/handler-compiler-x87.cc ('k') | src/interface-descriptors.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698