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

Side by Side Diff: src/mips/interface-descriptors-mips.cc

Issue 537753002: MIPS: CallDescriptors::InitializeForIsolate() is no longer needed. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: 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 | « no previous file | src/mips64/interface-descriptors-mips64.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 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 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_MIPS 7 #if V8_TARGET_ARCH_MIPS
8 8
9 #include "src/interface-descriptors.h" 9 #include "src/interface-descriptors.h"
10 10
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 } 52 }
53 53
54 54
55 const Register ElementTransitionAndStoreDescriptor::MapRegister() { return a3; } 55 const Register ElementTransitionAndStoreDescriptor::MapRegister() { return a3; }
56 56
57 57
58 const Register InstanceofDescriptor::left() { return a0; } 58 const Register InstanceofDescriptor::left() { return a0; }
59 const Register InstanceofDescriptor::right() { return a1; } 59 const Register InstanceofDescriptor::right() { return a1; }
60 60
61 61
62 void FastNewClosureDescriptor::Initialize(Isolate* isolate) { 62 void FastNewClosureDescriptor::Initialize(CallInterfaceDescriptorData* data) {
63 Register registers[] = {cp, a2}; 63 Register registers[] = {cp, a2};
64 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 64 data->Initialize(arraysize(registers), registers, NULL);
65 } 65 }
66 66
67 67
68 void FastNewContextDescriptor::Initialize(Isolate* isolate) { 68 void FastNewContextDescriptor::Initialize(CallInterfaceDescriptorData* data) {
69 Register registers[] = {cp, a1}; 69 Register registers[] = {cp, a1};
70 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 70 data->Initialize(arraysize(registers), registers, NULL);
71 } 71 }
72 72
73 73
74 void ToNumberDescriptor::Initialize(Isolate* isolate) { 74 void ToNumberDescriptor::Initialize(CallInterfaceDescriptorData* data) {
75 Register registers[] = {cp, a0}; 75 Register registers[] = {cp, a0};
76 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 76 data->Initialize(arraysize(registers), registers, NULL);
77 } 77 }
78 78
79 79
80 void NumberToStringDescriptor::Initialize(Isolate* isolate) { 80 void NumberToStringDescriptor::Initialize(CallInterfaceDescriptorData* data) {
81 Register registers[] = {cp, a0}; 81 Register registers[] = {cp, a0};
82 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 82 data->Initialize(arraysize(registers), registers, NULL);
83 } 83 }
84 84
85 85
86 void FastCloneShallowArrayDescriptor::Initialize(Isolate* isolate) { 86 void FastCloneShallowArrayDescriptor::Initialize(
87 CallInterfaceDescriptorData* data) {
87 Register registers[] = {cp, a3, a2, a1}; 88 Register registers[] = {cp, a3, a2, a1};
88 Representation representations[] = { 89 Representation representations[] = {
89 Representation::Tagged(), Representation::Tagged(), Representation::Smi(), 90 Representation::Tagged(), Representation::Tagged(), Representation::Smi(),
90 Representation::Tagged()}; 91 Representation::Tagged()};
91 InitializeData(isolate, key(), arraysize(registers), registers, 92 data->Initialize(arraysize(registers), registers, representations);
92 representations);
93 } 93 }
94 94
95 95
96 void FastCloneShallowObjectDescriptor::Initialize(Isolate* isolate) { 96 void FastCloneShallowObjectDescriptor::Initialize(
97 CallInterfaceDescriptorData* data) {
97 Register registers[] = {cp, a3, a2, a1, a0}; 98 Register registers[] = {cp, a3, a2, a1, a0};
98 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 99 data->Initialize(arraysize(registers), registers, NULL);
99 } 100 }
100 101
101 102
102 void CreateAllocationSiteDescriptor::Initialize(Isolate* isolate) { 103 void CreateAllocationSiteDescriptor::Initialize(
104 CallInterfaceDescriptorData* data) {
103 Register registers[] = {cp, a2, a3}; 105 Register registers[] = {cp, a2, a3};
104 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 106 data->Initialize(arraysize(registers), registers, NULL);
105 } 107 }
106 108
107 109
108 void CallFunctionDescriptor::Initialize(Isolate* isolate) { 110 void CallFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) {
109 Register registers[] = {cp, a1}; 111 Register registers[] = {cp, a1};
110 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 112 data->Initialize(arraysize(registers), registers, NULL);
111 } 113 }
112 114
113 115
114 void CallConstructDescriptor::Initialize(Isolate* isolate) { 116 void CallConstructDescriptor::Initialize(CallInterfaceDescriptorData* data) {
115 // a0 : number of arguments 117 // a0 : number of arguments
116 // a1 : the function to call 118 // a1 : the function to call
117 // a2 : feedback vector 119 // a2 : feedback vector
118 // a3 : (only if a2 is not the megamorphic symbol) slot in feedback 120 // a3 : (only if a2 is not the megamorphic symbol) slot in feedback
119 // vector (Smi) 121 // vector (Smi)
120 // TODO(turbofan): So far we don't gather type feedback and hence skip the 122 // TODO(turbofan): So far we don't gather type feedback and hence skip the
121 // slot parameter, but ArrayConstructStub needs the vector to be undefined. 123 // slot parameter, but ArrayConstructStub needs the vector to be undefined.
122 Register registers[] = {cp, a0, a1, a2}; 124 Register registers[] = {cp, a0, a1, a2};
123 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 125 data->Initialize(arraysize(registers), registers, NULL);
124 } 126 }
125 127
126 128
127 void RegExpConstructResultDescriptor::Initialize(Isolate* isolate) { 129 void RegExpConstructResultDescriptor::Initialize(
130 CallInterfaceDescriptorData* data) {
128 Register registers[] = {cp, a2, a1, a0}; 131 Register registers[] = {cp, a2, a1, a0};
129 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 132 data->Initialize(arraysize(registers), registers, NULL);
130 } 133 }
131 134
132 135
133 void TransitionElementsKindDescriptor::Initialize(Isolate* isolate) { 136 void TransitionElementsKindDescriptor::Initialize(
137 CallInterfaceDescriptorData* data) {
134 Register registers[] = {cp, a0, a1}; 138 Register registers[] = {cp, a0, a1};
135 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 139 data->Initialize(arraysize(registers), registers, NULL);
136 } 140 }
137 141
138 142
139 void ArrayConstructorConstantArgCountDescriptor::Initialize(Isolate* isolate) { 143 void ArrayConstructorConstantArgCountDescriptor::Initialize(
144 CallInterfaceDescriptorData* data) {
140 // register state 145 // register state
141 // cp -- context 146 // cp -- context
142 // a0 -- number of arguments 147 // a0 -- number of arguments
143 // a1 -- function 148 // a1 -- function
144 // a2 -- allocation site with elements kind 149 // a2 -- allocation site with elements kind
145 Register registers[] = {cp, a1, a2}; 150 Register registers[] = {cp, a1, a2};
146 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 151 data->Initialize(arraysize(registers), registers, NULL);
147 } 152 }
148 153
149 154
150 void ArrayConstructorDescriptor::Initialize(Isolate* isolate) { 155 void ArrayConstructorDescriptor::Initialize(CallInterfaceDescriptorData* data) {
151 // stack param count needs (constructor pointer, and single argument) 156 // stack param count needs (constructor pointer, and single argument)
152 Register registers[] = {cp, a1, a2, a0}; 157 Register registers[] = {cp, a1, a2, a0};
153 Representation representations[] = { 158 Representation representations[] = {
154 Representation::Tagged(), Representation::Tagged(), 159 Representation::Tagged(), Representation::Tagged(),
155 Representation::Tagged(), Representation::Integer32()}; 160 Representation::Tagged(), Representation::Integer32()};
156 InitializeData(isolate, key(), arraysize(registers), registers, 161 data->Initialize(arraysize(registers), registers, representations);
157 representations);
158 } 162 }
159 163
160 164
161 void InternalArrayConstructorConstantArgCountDescriptor::Initialize( 165 void InternalArrayConstructorConstantArgCountDescriptor::Initialize(
162 Isolate* isolate) { 166 CallInterfaceDescriptorData* data) {
163 // register state 167 // register state
164 // cp -- context 168 // cp -- context
165 // a0 -- number of arguments 169 // a0 -- number of arguments
166 // a1 -- constructor function 170 // a1 -- constructor function
167 Register registers[] = {cp, a1}; 171 Register registers[] = {cp, a1};
168 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 172 data->Initialize(arraysize(registers), registers, NULL);
169 } 173 }
170 174
171 175
172 void InternalArrayConstructorDescriptor::Initialize(Isolate* isolate) { 176 void InternalArrayConstructorDescriptor::Initialize(
177 CallInterfaceDescriptorData* data) {
173 // stack param count needs (constructor pointer, and single argument) 178 // stack param count needs (constructor pointer, and single argument)
174 Register registers[] = {cp, a1, a0}; 179 Register registers[] = {cp, a1, a0};
175 Representation representations[] = {Representation::Tagged(), 180 Representation representations[] = {Representation::Tagged(),
176 Representation::Tagged(), 181 Representation::Tagged(),
177 Representation::Integer32()}; 182 Representation::Integer32()};
178 InitializeData(isolate, key(), arraysize(registers), registers, 183 data->Initialize(arraysize(registers), registers, representations);
179 representations);
180 } 184 }
181 185
182 186
183 void CompareNilDescriptor::Initialize(Isolate* isolate) { 187 void CompareNilDescriptor::Initialize(CallInterfaceDescriptorData* data) {
184 Register registers[] = {cp, a0}; 188 Register registers[] = {cp, a0};
185 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 189 data->Initialize(arraysize(registers), registers, NULL);
186 } 190 }
187 191
188 192
189 void ToBooleanDescriptor::Initialize(Isolate* isolate) { 193 void ToBooleanDescriptor::Initialize(CallInterfaceDescriptorData* data) {
190 Register registers[] = {cp, a0}; 194 Register registers[] = {cp, a0};
191 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 195 data->Initialize(arraysize(registers), registers, NULL);
192 } 196 }
193 197
194 198
195 void BinaryOpDescriptor::Initialize(Isolate* isolate) { 199 void BinaryOpDescriptor::Initialize(CallInterfaceDescriptorData* data) {
196 Register registers[] = {cp, a1, a0}; 200 Register registers[] = {cp, a1, a0};
197 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 201 data->Initialize(arraysize(registers), registers, NULL);
198 } 202 }
199 203
200 204
201 void BinaryOpWithAllocationSiteDescriptor::Initialize(Isolate* isolate) { 205 void BinaryOpWithAllocationSiteDescriptor::Initialize(
206 CallInterfaceDescriptorData* data) {
202 Register registers[] = {cp, a2, a1, a0}; 207 Register registers[] = {cp, a2, a1, a0};
203 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 208 data->Initialize(arraysize(registers), registers, NULL);
204 } 209 }
205 210
206 211
207 void StringAddDescriptor::Initialize(Isolate* isolate) { 212 void StringAddDescriptor::Initialize(CallInterfaceDescriptorData* data) {
208 Register registers[] = {cp, a1, a0}; 213 Register registers[] = {cp, a1, a0};
209 InitializeData(isolate, key(), arraysize(registers), registers, NULL); 214 data->Initialize(arraysize(registers), registers, NULL);
210 } 215 }
211 216
212 217
213 void KeyedDescriptor::Initialize(Isolate* isolate) { 218 void KeyedDescriptor::Initialize(CallInterfaceDescriptorData* data) {
214 Register registers[] = { 219 Register registers[] = {
215 cp, // context 220 cp, // context
216 a2, // key 221 a2, // key
217 }; 222 };
218 Representation representations[] = { 223 Representation representations[] = {
219 Representation::Tagged(), // context 224 Representation::Tagged(), // context
220 Representation::Tagged(), // key 225 Representation::Tagged(), // key
221 }; 226 };
222 InitializeData(isolate, key(), arraysize(registers), registers, 227 data->Initialize(arraysize(registers), registers, representations);
223 representations);
224 } 228 }
225 229
226 230
227 void NamedDescriptor::Initialize(Isolate* isolate) { 231 void NamedDescriptor::Initialize(CallInterfaceDescriptorData* data) {
228 Register registers[] = { 232 Register registers[] = {
229 cp, // context 233 cp, // context
230 a2, // name 234 a2, // name
231 }; 235 };
232 Representation representations[] = { 236 Representation representations[] = {
233 Representation::Tagged(), // context 237 Representation::Tagged(), // context
234 Representation::Tagged(), // name 238 Representation::Tagged(), // name
235 }; 239 };
236 InitializeData(isolate, key(), arraysize(registers), registers, 240 data->Initialize(arraysize(registers), registers, representations);
237 representations);
238 } 241 }
239 242
240 243
241 void CallHandlerDescriptor::Initialize(Isolate* isolate) { 244 void CallHandlerDescriptor::Initialize(CallInterfaceDescriptorData* data) {
242 Register registers[] = { 245 Register registers[] = {
243 cp, // context 246 cp, // context
244 a0, // receiver 247 a0, // receiver
245 }; 248 };
246 Representation representations[] = { 249 Representation representations[] = {
247 Representation::Tagged(), // context 250 Representation::Tagged(), // context
248 Representation::Tagged(), // receiver 251 Representation::Tagged(), // receiver
249 }; 252 };
250 InitializeData(isolate, key(), arraysize(registers), registers, 253 data->Initialize(arraysize(registers), registers, representations);
251 representations);
252 } 254 }
253 255
254 256
255 void ArgumentAdaptorDescriptor::Initialize(Isolate* isolate) { 257 void ArgumentAdaptorDescriptor::Initialize(CallInterfaceDescriptorData* data) {
256 Register registers[] = { 258 Register registers[] = {
257 cp, // context 259 cp, // context
258 a1, // JSFunction 260 a1, // JSFunction
259 a0, // actual number of arguments 261 a0, // actual number of arguments
260 a2, // expected number of arguments 262 a2, // expected number of arguments
261 }; 263 };
262 Representation representations[] = { 264 Representation representations[] = {
263 Representation::Tagged(), // context 265 Representation::Tagged(), // context
264 Representation::Tagged(), // JSFunction 266 Representation::Tagged(), // JSFunction
265 Representation::Integer32(), // actual number of arguments 267 Representation::Integer32(), // actual number of arguments
266 Representation::Integer32(), // expected number of arguments 268 Representation::Integer32(), // expected number of arguments
267 }; 269 };
268 InitializeData(isolate, key(), arraysize(registers), registers, 270 data->Initialize(arraysize(registers), registers, representations);
269 representations);
270 } 271 }
271 272
272 273
273 void ApiFunctionDescriptor::Initialize(Isolate* isolate) { 274 void ApiFunctionDescriptor::Initialize(CallInterfaceDescriptorData* data) {
274 Register registers[] = { 275 Register registers[] = {
275 cp, // context 276 cp, // context
276 a0, // callee 277 a0, // callee
277 t0, // call_data 278 t0, // call_data
278 a2, // holder 279 a2, // holder
279 a1, // api_function_address 280 a1, // api_function_address
280 }; 281 };
281 Representation representations[] = { 282 Representation representations[] = {
282 Representation::Tagged(), // context 283 Representation::Tagged(), // context
283 Representation::Tagged(), // callee 284 Representation::Tagged(), // callee
284 Representation::Tagged(), // call_data 285 Representation::Tagged(), // call_data
285 Representation::Tagged(), // holder 286 Representation::Tagged(), // holder
286 Representation::External(), // api_function_address 287 Representation::External(), // api_function_address
287 }; 288 };
288 InitializeData(isolate, key(), arraysize(registers), registers, 289 data->Initialize(arraysize(registers), registers, representations);
289 representations);
290 } 290 }
291 } 291 }
292 } // namespace v8::internal 292 } // namespace v8::internal
293 293
294 #endif // V8_TARGET_ARCH_MIPS 294 #endif // V8_TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « no previous file | src/mips64/interface-descriptors-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698