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

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

Issue 523583002: Multiple stubs can point to the same calling convention. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Ports. Created 6 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 | Annotate | Revision Log
« no previous file with comments | « src/ic/x64/ic-conventions-x64.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 "src/assembler.h" 8 #include "src/assembler.h"
9 #include "src/macro-assembler.h" 9 #include "src/macro-assembler.h"
10 10
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 // assumed to be Tagged(). 77 // assumed to be Tagged().
78 SmartArrayPointer<Representation> register_param_representations_; 78 SmartArrayPointer<Representation> register_param_representations_;
79 79
80 PlatformInterfaceDescriptor* platform_specific_descriptor_; 80 PlatformInterfaceDescriptor* platform_specific_descriptor_;
81 81
82 DISALLOW_COPY_AND_ASSIGN(InterfaceDescriptor); 82 DISALLOW_COPY_AND_ASSIGN(InterfaceDescriptor);
83 }; 83 };
84 84
85 85
86 enum CallDescriptorKey { 86 enum CallDescriptorKey {
87 LoadICCall,
88 StoreICCall,
89 ElementTransitionAndStoreCall,
90 InstanceofCall,
91 VectorLoadICCall,
92 FastNewClosureCall,
93 FastNewContextCall,
94 ToNumberCall,
95 NumberToStringCall,
96 FastCloneShallowArrayCall,
97 FastCloneShallowObjectCall,
98 CreateAllocationSiteCall,
99 CallFunctionCall,
100 CallConstructCall,
101 RegExpConstructResultCall,
102 TransitionElementsKindCall,
103 ArrayConstructorConstantArgCountCall,
104 ArrayConstructorCall,
105 InternalArrayConstructorConstantArgCountCall,
106 InternalArrayConstructorCall,
107 CompareNilCall,
108 ToBooleanCall,
109 BinaryOpCall,
110 BinaryOpWithAllocationSiteCall,
111 StringAddCall,
87 KeyedCall, 112 KeyedCall,
88 NamedCall, 113 NamedCall,
89 CallHandler, 114 CallHandler,
90 ArgumentAdaptorCall, 115 ArgumentAdaptorCall,
91 ApiFunctionCall, 116 ApiFunctionCall,
92 NUMBER_OF_CALL_DESCRIPTORS 117 NUMBER_OF_CALL_DESCRIPTORS
93 }; 118 };
94 119
95 120
96 class CallInterfaceDescriptor : public InterfaceDescriptor { 121 class CallInterfaceDescriptor : public InterfaceDescriptor {
97 public: 122 public:
98 CallInterfaceDescriptor() {} 123 CallInterfaceDescriptor() {}
99 124
100 // A copy of the passed in registers and param_representations is made 125 // A copy of the passed in registers and param_representations is made
101 // and owned by the CallInterfaceDescriptor. 126 // and owned by the CallInterfaceDescriptor.
102 127
103 // TODO(mvstanton): Instead of taking parallel arrays register and 128 // TODO(mvstanton): Instead of taking parallel arrays register and
104 // param_representations, how about a struct that puts the representation 129 // param_representations, how about a struct that puts the representation
105 // and register side by side (eg, RegRep(r1, Representation::Tagged()). 130 // and register side by side (eg, RegRep(r1, Representation::Tagged()).
106 // The same should go for the CodeStubInterfaceDescriptor class. 131 // The same should go for the CodeStubInterfaceDescriptor class.
107 void Initialize(int register_parameter_count, Register* registers, 132 void Initialize(int register_parameter_count, Register* registers,
108 Representation* param_representations, 133 Representation* param_representations,
109 PlatformInterfaceDescriptor* platform_descriptor = NULL); 134 PlatformInterfaceDescriptor* platform_descriptor = NULL);
110 }; 135 };
111 136
112 137
113 class CallDescriptors { 138 class CallDescriptors {
114 public: 139 public:
115 static void InitializeForIsolate(Isolate* isolate); 140 static void InitializeForIsolate(Isolate* isolate);
141
142 private:
143 static void InitializeForIsolateAllPlatforms(Isolate* isolate);
116 }; 144 };
117 } 145 }
118 } // namespace v8::internal 146 } // namespace v8::internal
119 147
120 #if V8_TARGET_ARCH_ARM64 148 #if V8_TARGET_ARCH_ARM64
121 #include "src/arm64/interface-descriptors-arm64.h" 149 #include "src/arm64/interface-descriptors-arm64.h"
122 #elif V8_TARGET_ARCH_ARM 150 #elif V8_TARGET_ARCH_ARM
123 #include "src/arm/interface-descriptors-arm.h" 151 #include "src/arm/interface-descriptors-arm.h"
124 #endif 152 #endif
125 153
126 #endif // V8_CALL_INTERFACE_DESCRIPTOR_H_ 154 #endif // V8_CALL_INTERFACE_DESCRIPTOR_H_
OLDNEW
« no previous file with comments | « src/ic/x64/ic-conventions-x64.cc ('k') | src/interface-descriptors.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698