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 #include "src/interface-descriptors.h" | 5 #include "src/interface-descriptors.h" |
6 | 6 |
7 namespace v8 { | 7 namespace v8 { |
8 namespace internal { | 8 namespace internal { |
9 | 9 |
10 namespace { | 10 namespace { |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 return ""; | 73 return ""; |
74 } | 74 } |
75 | 75 |
76 | 76 |
77 void VoidDescriptor::InitializePlatformSpecific( | 77 void VoidDescriptor::InitializePlatformSpecific( |
78 CallInterfaceDescriptorData* data) { | 78 CallInterfaceDescriptorData* data) { |
79 data->InitializePlatformSpecific(0, nullptr); | 79 data->InitializePlatformSpecific(0, nullptr); |
80 } | 80 } |
81 | 81 |
82 FunctionType* LoadDescriptor::BuildCallInterfaceDescriptorFunctionType( | 82 FunctionType* LoadDescriptor::BuildCallInterfaceDescriptorFunctionType( |
83 Isolate* isolate, int paramater_count) { | 83 Isolate* isolate, int parameter_count) { |
84 Zone* zone = isolate->interface_descriptor_zone(); | 84 Zone* zone = isolate->interface_descriptor_zone(); |
85 FunctionType* function = | 85 FunctionType* function = |
86 Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); | 86 Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); |
87 function->InitParameter(0, AnyTagged(zone)); | 87 function->InitParameter(0, AnyTagged(zone)); |
88 function->InitParameter(1, AnyTagged(zone)); | 88 function->InitParameter(1, AnyTagged(zone)); |
89 function->InitParameter(2, SmiType(zone)); | 89 function->InitParameter(2, SmiType(zone)); |
90 return function; | 90 return function; |
91 } | 91 } |
92 | 92 |
93 | 93 |
94 void LoadDescriptor::InitializePlatformSpecific( | 94 void LoadDescriptor::InitializePlatformSpecific( |
95 CallInterfaceDescriptorData* data) { | 95 CallInterfaceDescriptorData* data) { |
96 Register registers[] = {ReceiverRegister(), NameRegister(), SlotRegister()}; | 96 Register registers[] = {ReceiverRegister(), NameRegister(), SlotRegister()}; |
97 data->InitializePlatformSpecific(arraysize(registers), registers); | 97 data->InitializePlatformSpecific(arraysize(registers), registers); |
98 } | 98 } |
99 | 99 |
100 FunctionType* LoadGlobalDescriptor::BuildCallInterfaceDescriptorFunctionType( | 100 FunctionType* LoadGlobalDescriptor::BuildCallInterfaceDescriptorFunctionType( |
101 Isolate* isolate, int paramater_count) { | 101 Isolate* isolate, int parameter_count) { |
102 Zone* zone = isolate->interface_descriptor_zone(); | 102 Zone* zone = isolate->interface_descriptor_zone(); |
103 FunctionType* function = | 103 FunctionType* function = |
104 Type::Function(AnyTagged(zone), Type::Undefined(), 1, zone)->AsFunction(); | 104 Type::Function(AnyTagged(zone), Type::Undefined(), 1, zone)->AsFunction(); |
105 function->InitParameter(0, SmiType(zone)); | 105 function->InitParameter(0, SmiType(zone)); |
106 return function; | 106 return function; |
107 } | 107 } |
108 | 108 |
109 void LoadGlobalDescriptor::InitializePlatformSpecific( | 109 void LoadGlobalDescriptor::InitializePlatformSpecific( |
110 CallInterfaceDescriptorData* data) { | 110 CallInterfaceDescriptorData* data) { |
111 Register registers[] = {LoadWithVectorDescriptor::SlotRegister()}; | 111 Register registers[] = {LoadWithVectorDescriptor::SlotRegister()}; |
112 data->InitializePlatformSpecific(arraysize(registers), registers); | 112 data->InitializePlatformSpecific(arraysize(registers), registers); |
113 } | 113 } |
114 | 114 |
115 FunctionType* | 115 FunctionType* |
116 LoadGlobalWithVectorDescriptor::BuildCallInterfaceDescriptorFunctionType( | 116 LoadGlobalWithVectorDescriptor::BuildCallInterfaceDescriptorFunctionType( |
117 Isolate* isolate, int paramater_count) { | 117 Isolate* isolate, int parameter_count) { |
118 Zone* zone = isolate->interface_descriptor_zone(); | 118 Zone* zone = isolate->interface_descriptor_zone(); |
119 FunctionType* function = | 119 FunctionType* function = |
120 Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); | 120 Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); |
121 function->InitParameter(0, SmiType(zone)); | 121 function->InitParameter(0, SmiType(zone)); |
122 function->InitParameter(1, AnyTagged(zone)); | 122 function->InitParameter(1, AnyTagged(zone)); |
123 return function; | 123 return function; |
124 } | 124 } |
125 | 125 |
126 void LoadGlobalWithVectorDescriptor::InitializePlatformSpecific( | 126 void LoadGlobalWithVectorDescriptor::InitializePlatformSpecific( |
127 CallInterfaceDescriptorData* data) { | 127 CallInterfaceDescriptorData* data) { |
128 Register registers[] = {LoadWithVectorDescriptor::SlotRegister(), | 128 Register registers[] = {LoadWithVectorDescriptor::SlotRegister(), |
129 LoadWithVectorDescriptor::VectorRegister()}; | 129 LoadWithVectorDescriptor::VectorRegister()}; |
130 data->InitializePlatformSpecific(arraysize(registers), registers); | 130 data->InitializePlatformSpecific(arraysize(registers), registers); |
131 } | 131 } |
132 | 132 |
| 133 FunctionType* StoreDescriptor::BuildCallInterfaceDescriptorFunctionType( |
| 134 Isolate* isolate, int parameter_count) { |
| 135 Zone* zone = isolate->interface_descriptor_zone(); |
| 136 FunctionType* function = |
| 137 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); |
| 138 function->InitParameter(0, AnyTagged(zone)); |
| 139 function->InitParameter(1, AnyTagged(zone)); |
| 140 function->InitParameter(2, AnyTagged(zone)); |
| 141 function->InitParameter(3, SmiType(zone)); |
| 142 return function; |
| 143 } |
| 144 |
133 void StoreDescriptor::InitializePlatformSpecific( | 145 void StoreDescriptor::InitializePlatformSpecific( |
134 CallInterfaceDescriptorData* data) { | 146 CallInterfaceDescriptorData* data) { |
135 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister()}; | 147 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), |
| 148 SlotRegister()}; |
136 data->InitializePlatformSpecific(arraysize(registers), registers); | 149 data->InitializePlatformSpecific(arraysize(registers), registers); |
137 } | 150 } |
138 | 151 |
139 | 152 |
140 void StoreTransitionDescriptor::InitializePlatformSpecific( | 153 void StoreTransitionDescriptor::InitializePlatformSpecific( |
141 CallInterfaceDescriptorData* data) { | 154 CallInterfaceDescriptorData* data) { |
142 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), | 155 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), |
143 MapRegister()}; | 156 MapRegister()}; |
144 | 157 |
145 data->InitializePlatformSpecific(arraysize(registers), registers); | 158 data->InitializePlatformSpecific(arraysize(registers), registers); |
146 } | 159 } |
147 | 160 |
148 | 161 |
149 void VectorStoreTransitionDescriptor::InitializePlatformSpecific( | 162 void VectorStoreTransitionDescriptor::InitializePlatformSpecific( |
150 CallInterfaceDescriptorData* data) { | 163 CallInterfaceDescriptorData* data) { |
151 if (SlotRegister().is(no_reg)) { | 164 if (SlotRegister().is(no_reg)) { |
152 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), | 165 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), |
153 MapRegister(), VectorRegister()}; | 166 MapRegister(), VectorRegister()}; |
154 data->InitializePlatformSpecific(arraysize(registers), registers); | 167 data->InitializePlatformSpecific(arraysize(registers), registers); |
155 } else { | 168 } else { |
156 Register registers[] = {ReceiverRegister(), NameRegister(), | 169 Register registers[] = {ReceiverRegister(), NameRegister(), |
157 ValueRegister(), MapRegister(), | 170 ValueRegister(), MapRegister(), |
158 SlotRegister(), VectorRegister()}; | 171 SlotRegister(), VectorRegister()}; |
159 data->InitializePlatformSpecific(arraysize(registers), registers); | 172 data->InitializePlatformSpecific(arraysize(registers), registers); |
160 } | 173 } |
161 } | 174 } |
162 | 175 |
163 FunctionType* | 176 FunctionType* |
164 StoreTransitionDescriptor::BuildCallInterfaceDescriptorFunctionType( | 177 StoreTransitionDescriptor::BuildCallInterfaceDescriptorFunctionType( |
165 Isolate* isolate, int paramater_count) { | 178 Isolate* isolate, int parameter_count) { |
166 Zone* zone = isolate->interface_descriptor_zone(); | 179 Zone* zone = isolate->interface_descriptor_zone(); |
167 FunctionType* function = | 180 FunctionType* function = |
168 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 181 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); |
169 function->InitParameter(0, AnyTagged(zone)); // Receiver | 182 function->InitParameter(0, AnyTagged(zone)); // Receiver |
170 function->InitParameter(1, AnyTagged(zone)); // Name | 183 function->InitParameter(1, AnyTagged(zone)); // Name |
171 function->InitParameter(2, AnyTagged(zone)); // Value | 184 function->InitParameter(2, AnyTagged(zone)); // Value |
172 function->InitParameter(3, AnyTagged(zone)); // Map | 185 function->InitParameter(3, AnyTagged(zone)); // Map |
173 return function; | 186 return function; |
174 } | 187 } |
175 | 188 |
176 FunctionType* | 189 FunctionType* |
177 StoreGlobalViaContextDescriptor::BuildCallInterfaceDescriptorFunctionType( | 190 StoreGlobalViaContextDescriptor::BuildCallInterfaceDescriptorFunctionType( |
178 Isolate* isolate, int paramater_count) { | 191 Isolate* isolate, int parameter_count) { |
179 Zone* zone = isolate->interface_descriptor_zone(); | 192 Zone* zone = isolate->interface_descriptor_zone(); |
180 FunctionType* function = | 193 FunctionType* function = |
181 Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); | 194 Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); |
182 function->InitParameter(0, UntaggedIntegral32(zone)); | 195 function->InitParameter(0, UntaggedIntegral32(zone)); |
183 function->InitParameter(1, AnyTagged(zone)); | 196 function->InitParameter(1, AnyTagged(zone)); |
184 return function; | 197 return function; |
185 } | 198 } |
186 | 199 |
187 | 200 |
188 void StoreGlobalViaContextDescriptor::InitializePlatformSpecific( | 201 void StoreGlobalViaContextDescriptor::InitializePlatformSpecific( |
(...skipping 22 matching lines...) Expand all Loading... |
211 } | 224 } |
212 | 225 |
213 void MathPowIntegerDescriptor::InitializePlatformSpecific( | 226 void MathPowIntegerDescriptor::InitializePlatformSpecific( |
214 CallInterfaceDescriptorData* data) { | 227 CallInterfaceDescriptorData* data) { |
215 Register registers[] = {exponent()}; | 228 Register registers[] = {exponent()}; |
216 data->InitializePlatformSpecific(arraysize(registers), registers); | 229 data->InitializePlatformSpecific(arraysize(registers), registers); |
217 } | 230 } |
218 | 231 |
219 FunctionType* | 232 FunctionType* |
220 LoadWithVectorDescriptor::BuildCallInterfaceDescriptorFunctionType( | 233 LoadWithVectorDescriptor::BuildCallInterfaceDescriptorFunctionType( |
221 Isolate* isolate, int paramater_count) { | 234 Isolate* isolate, int parameter_count) { |
222 Zone* zone = isolate->interface_descriptor_zone(); | 235 Zone* zone = isolate->interface_descriptor_zone(); |
223 FunctionType* function = | 236 FunctionType* function = |
224 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 237 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); |
225 function->InitParameter(0, AnyTagged(zone)); | 238 function->InitParameter(0, AnyTagged(zone)); |
226 function->InitParameter(1, AnyTagged(zone)); | 239 function->InitParameter(1, AnyTagged(zone)); |
227 function->InitParameter(2, SmiType(zone)); | 240 function->InitParameter(2, SmiType(zone)); |
228 function->InitParameter(3, AnyTagged(zone)); | 241 function->InitParameter(3, AnyTagged(zone)); |
229 return function; | 242 return function; |
230 } | 243 } |
231 | 244 |
232 | 245 |
233 void LoadWithVectorDescriptor::InitializePlatformSpecific( | 246 void LoadWithVectorDescriptor::InitializePlatformSpecific( |
234 CallInterfaceDescriptorData* data) { | 247 CallInterfaceDescriptorData* data) { |
235 Register registers[] = {ReceiverRegister(), NameRegister(), SlotRegister(), | 248 Register registers[] = {ReceiverRegister(), NameRegister(), SlotRegister(), |
236 VectorRegister()}; | 249 VectorRegister()}; |
237 data->InitializePlatformSpecific(arraysize(registers), registers); | 250 data->InitializePlatformSpecific(arraysize(registers), registers); |
238 } | 251 } |
239 | 252 |
240 FunctionType* | 253 FunctionType* |
241 VectorStoreTransitionDescriptor::BuildCallInterfaceDescriptorFunctionType( | 254 VectorStoreTransitionDescriptor::BuildCallInterfaceDescriptorFunctionType( |
242 Isolate* isolate, int paramater_count) { | 255 Isolate* isolate, int parameter_count) { |
243 Zone* zone = isolate->interface_descriptor_zone(); | 256 Zone* zone = isolate->interface_descriptor_zone(); |
244 bool has_slot = !VectorStoreTransitionDescriptor::SlotRegister().is(no_reg); | 257 bool has_slot = !VectorStoreTransitionDescriptor::SlotRegister().is(no_reg); |
245 int arg_count = has_slot ? 6 : 5; | 258 int arg_count = has_slot ? 6 : 5; |
246 FunctionType* function = | 259 FunctionType* function = |
247 Type::Function(AnyTagged(zone), Type::Undefined(), arg_count, zone) | 260 Type::Function(AnyTagged(zone), Type::Undefined(), arg_count, zone) |
248 ->AsFunction(); | 261 ->AsFunction(); |
249 int index = 0; | 262 int index = 0; |
250 function->InitParameter(index++, AnyTagged(zone)); // receiver | 263 function->InitParameter(index++, AnyTagged(zone)); // receiver |
251 function->InitParameter(index++, AnyTagged(zone)); // name | 264 function->InitParameter(index++, AnyTagged(zone)); // name |
252 function->InitParameter(index++, AnyTagged(zone)); // value | 265 function->InitParameter(index++, AnyTagged(zone)); // value |
253 function->InitParameter(index++, AnyTagged(zone)); // map | 266 function->InitParameter(index++, AnyTagged(zone)); // map |
254 if (has_slot) { | 267 if (has_slot) { |
255 function->InitParameter(index++, SmiType(zone)); // slot | 268 function->InitParameter(index++, SmiType(zone)); // slot |
256 } | 269 } |
257 function->InitParameter(index++, AnyTagged(zone)); // vector | 270 function->InitParameter(index++, AnyTagged(zone)); // vector |
258 return function; | 271 return function; |
259 } | 272 } |
260 | 273 |
261 FunctionType* VectorStoreICDescriptor::BuildCallInterfaceDescriptorFunctionType( | 274 FunctionType* |
262 Isolate* isolate, int paramater_count) { | 275 StoreWithVectorDescriptor::BuildCallInterfaceDescriptorFunctionType( |
| 276 Isolate* isolate, int parameter_count) { |
263 Zone* zone = isolate->interface_descriptor_zone(); | 277 Zone* zone = isolate->interface_descriptor_zone(); |
264 FunctionType* function = | 278 FunctionType* function = |
265 Type::Function(AnyTagged(zone), Type::Undefined(), 5, zone)->AsFunction(); | 279 Type::Function(AnyTagged(zone), Type::Undefined(), 5, zone)->AsFunction(); |
266 function->InitParameter(0, AnyTagged(zone)); | 280 function->InitParameter(0, AnyTagged(zone)); |
267 function->InitParameter(1, AnyTagged(zone)); | 281 function->InitParameter(1, AnyTagged(zone)); |
268 function->InitParameter(2, AnyTagged(zone)); | 282 function->InitParameter(2, AnyTagged(zone)); |
269 function->InitParameter(3, SmiType(zone)); | 283 function->InitParameter(3, SmiType(zone)); |
270 function->InitParameter(4, AnyTagged(zone)); | 284 function->InitParameter(4, AnyTagged(zone)); |
271 return function; | 285 return function; |
272 } | 286 } |
273 | 287 |
274 | 288 void StoreWithVectorDescriptor::InitializePlatformSpecific( |
275 void VectorStoreICDescriptor::InitializePlatformSpecific( | |
276 CallInterfaceDescriptorData* data) { | 289 CallInterfaceDescriptorData* data) { |
277 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), | 290 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), |
278 SlotRegister(), VectorRegister()}; | 291 SlotRegister(), VectorRegister()}; |
279 data->InitializePlatformSpecific(arraysize(registers), registers); | 292 data->InitializePlatformSpecific(arraysize(registers), registers); |
280 } | 293 } |
281 | 294 |
282 FunctionType* | |
283 VectorStoreICTrampolineDescriptor::BuildCallInterfaceDescriptorFunctionType( | |
284 Isolate* isolate, int paramater_count) { | |
285 Zone* zone = isolate->interface_descriptor_zone(); | |
286 FunctionType* function = | |
287 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | |
288 function->InitParameter(0, AnyTagged(zone)); | |
289 function->InitParameter(1, AnyTagged(zone)); | |
290 function->InitParameter(2, AnyTagged(zone)); | |
291 function->InitParameter(3, SmiType(zone)); | |
292 return function; | |
293 } | |
294 | |
295 | |
296 void VectorStoreICTrampolineDescriptor::InitializePlatformSpecific( | |
297 CallInterfaceDescriptorData* data) { | |
298 Register registers[] = {ReceiverRegister(), NameRegister(), ValueRegister(), | |
299 SlotRegister()}; | |
300 data->InitializePlatformSpecific(arraysize(registers), registers); | |
301 } | |
302 | |
303 const Register ApiGetterDescriptor::ReceiverRegister() { | 295 const Register ApiGetterDescriptor::ReceiverRegister() { |
304 return LoadDescriptor::ReceiverRegister(); | 296 return LoadDescriptor::ReceiverRegister(); |
305 } | 297 } |
306 | 298 |
307 void ApiGetterDescriptor::InitializePlatformSpecific( | 299 void ApiGetterDescriptor::InitializePlatformSpecific( |
308 CallInterfaceDescriptorData* data) { | 300 CallInterfaceDescriptorData* data) { |
309 Register registers[] = {ReceiverRegister(), HolderRegister(), | 301 Register registers[] = {ReceiverRegister(), HolderRegister(), |
310 CallbackRegister()}; | 302 CallbackRegister()}; |
311 data->InitializePlatformSpecific(arraysize(registers), registers); | 303 data->InitializePlatformSpecific(arraysize(registers), registers); |
312 } | 304 } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 } | 352 } |
361 | 353 |
362 void GrowArrayElementsDescriptor::InitializePlatformSpecific( | 354 void GrowArrayElementsDescriptor::InitializePlatformSpecific( |
363 CallInterfaceDescriptorData* data) { | 355 CallInterfaceDescriptorData* data) { |
364 Register registers[] = {ObjectRegister(), KeyRegister()}; | 356 Register registers[] = {ObjectRegister(), KeyRegister()}; |
365 data->InitializePlatformSpecific(arraysize(registers), registers); | 357 data->InitializePlatformSpecific(arraysize(registers), registers); |
366 } | 358 } |
367 | 359 |
368 FunctionType* | 360 FunctionType* |
369 VarArgFunctionDescriptor::BuildCallInterfaceDescriptorFunctionType( | 361 VarArgFunctionDescriptor::BuildCallInterfaceDescriptorFunctionType( |
370 Isolate* isolate, int paramater_count) { | 362 Isolate* isolate, int parameter_count) { |
371 Zone* zone = isolate->interface_descriptor_zone(); | 363 Zone* zone = isolate->interface_descriptor_zone(); |
372 FunctionType* function = | 364 FunctionType* function = |
373 Type::Function(AnyTagged(zone), AnyTagged(zone), 1, zone)->AsFunction(); | 365 Type::Function(AnyTagged(zone), AnyTagged(zone), 1, zone)->AsFunction(); |
374 function->InitParameter(0, UntaggedIntegral32(zone)); // actual #arguments | 366 function->InitParameter(0, UntaggedIntegral32(zone)); // actual #arguments |
375 return function; | 367 return function; |
376 } | 368 } |
377 | 369 |
378 FunctionType* | 370 FunctionType* |
379 FastCloneRegExpDescriptor::BuildCallInterfaceDescriptorFunctionType( | 371 FastCloneRegExpDescriptor::BuildCallInterfaceDescriptorFunctionType( |
380 Isolate* isolate, int paramater_count) { | 372 Isolate* isolate, int parameter_count) { |
381 Zone* zone = isolate->interface_descriptor_zone(); | 373 Zone* zone = isolate->interface_descriptor_zone(); |
382 FunctionType* function = | 374 FunctionType* function = |
383 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 375 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); |
384 function->InitParameter(0, AnyTagged(zone)); // closure | 376 function->InitParameter(0, AnyTagged(zone)); // closure |
385 function->InitParameter(1, SmiType(zone)); // literal_index | 377 function->InitParameter(1, SmiType(zone)); // literal_index |
386 function->InitParameter(2, AnyTagged(zone)); // pattern | 378 function->InitParameter(2, AnyTagged(zone)); // pattern |
387 function->InitParameter(3, AnyTagged(zone)); // flags | 379 function->InitParameter(3, AnyTagged(zone)); // flags |
388 return function; | 380 return function; |
389 } | 381 } |
390 | 382 |
391 FunctionType* | 383 FunctionType* |
392 FastCloneShallowArrayDescriptor::BuildCallInterfaceDescriptorFunctionType( | 384 FastCloneShallowArrayDescriptor::BuildCallInterfaceDescriptorFunctionType( |
393 Isolate* isolate, int paramater_count) { | 385 Isolate* isolate, int parameter_count) { |
394 Zone* zone = isolate->interface_descriptor_zone(); | 386 Zone* zone = isolate->interface_descriptor_zone(); |
395 FunctionType* function = | 387 FunctionType* function = |
396 Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); | 388 Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); |
397 function->InitParameter(0, AnyTagged(zone)); | 389 function->InitParameter(0, AnyTagged(zone)); |
398 function->InitParameter(1, SmiType(zone)); | 390 function->InitParameter(1, SmiType(zone)); |
399 function->InitParameter(2, AnyTagged(zone)); | 391 function->InitParameter(2, AnyTagged(zone)); |
400 return function; | 392 return function; |
401 } | 393 } |
402 | 394 |
403 FunctionType* | 395 FunctionType* |
404 CreateAllocationSiteDescriptor::BuildCallInterfaceDescriptorFunctionType( | 396 CreateAllocationSiteDescriptor::BuildCallInterfaceDescriptorFunctionType( |
405 Isolate* isolate, int paramater_count) { | 397 Isolate* isolate, int parameter_count) { |
406 Zone* zone = isolate->interface_descriptor_zone(); | 398 Zone* zone = isolate->interface_descriptor_zone(); |
407 FunctionType* function = | 399 FunctionType* function = |
408 Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); | 400 Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); |
409 function->InitParameter(0, AnyTagged(zone)); | 401 function->InitParameter(0, AnyTagged(zone)); |
410 function->InitParameter(1, SmiType(zone)); | 402 function->InitParameter(1, SmiType(zone)); |
411 return function; | 403 return function; |
412 } | 404 } |
413 | 405 |
414 FunctionType* | 406 FunctionType* |
415 CreateWeakCellDescriptor::BuildCallInterfaceDescriptorFunctionType( | 407 CreateWeakCellDescriptor::BuildCallInterfaceDescriptorFunctionType( |
416 Isolate* isolate, int paramater_count) { | 408 Isolate* isolate, int parameter_count) { |
417 Zone* zone = isolate->interface_descriptor_zone(); | 409 Zone* zone = isolate->interface_descriptor_zone(); |
418 FunctionType* function = | 410 FunctionType* function = |
419 Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); | 411 Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); |
420 function->InitParameter(0, AnyTagged(zone)); | 412 function->InitParameter(0, AnyTagged(zone)); |
421 function->InitParameter(1, SmiType(zone)); | 413 function->InitParameter(1, SmiType(zone)); |
422 function->InitParameter(2, AnyTagged(zone)); | 414 function->InitParameter(2, AnyTagged(zone)); |
423 return function; | 415 return function; |
424 } | 416 } |
425 | 417 |
426 FunctionType* | 418 FunctionType* |
427 CallTrampolineDescriptor::BuildCallInterfaceDescriptorFunctionType( | 419 CallTrampolineDescriptor::BuildCallInterfaceDescriptorFunctionType( |
428 Isolate* isolate, int paramater_count) { | 420 Isolate* isolate, int parameter_count) { |
429 Zone* zone = isolate->interface_descriptor_zone(); | 421 Zone* zone = isolate->interface_descriptor_zone(); |
430 FunctionType* function = | 422 FunctionType* function = |
431 Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); | 423 Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); |
432 function->InitParameter(0, AnyTagged(zone)); // target | 424 function->InitParameter(0, AnyTagged(zone)); // target |
433 function->InitParameter(1, UntaggedIntegral32(zone)); // actual #arguments | 425 function->InitParameter(1, UntaggedIntegral32(zone)); // actual #arguments |
434 return function; | 426 return function; |
435 } | 427 } |
436 | 428 |
437 FunctionType* ConstructStubDescriptor::BuildCallInterfaceDescriptorFunctionType( | 429 FunctionType* ConstructStubDescriptor::BuildCallInterfaceDescriptorFunctionType( |
438 Isolate* isolate, int paramater_count) { | 430 Isolate* isolate, int parameter_count) { |
439 Zone* zone = isolate->interface_descriptor_zone(); | 431 Zone* zone = isolate->interface_descriptor_zone(); |
440 FunctionType* function = | 432 FunctionType* function = |
441 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 433 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); |
442 function->InitParameter(0, AnyTagged(zone)); // target | 434 function->InitParameter(0, AnyTagged(zone)); // target |
443 function->InitParameter(1, AnyTagged(zone)); // new.target | 435 function->InitParameter(1, AnyTagged(zone)); // new.target |
444 function->InitParameter(2, UntaggedIntegral32(zone)); // actual #arguments | 436 function->InitParameter(2, UntaggedIntegral32(zone)); // actual #arguments |
445 function->InitParameter(3, AnyTagged(zone)); // opt. allocation site | 437 function->InitParameter(3, AnyTagged(zone)); // opt. allocation site |
446 return function; | 438 return function; |
447 } | 439 } |
448 | 440 |
449 FunctionType* | 441 FunctionType* |
450 ConstructTrampolineDescriptor::BuildCallInterfaceDescriptorFunctionType( | 442 ConstructTrampolineDescriptor::BuildCallInterfaceDescriptorFunctionType( |
451 Isolate* isolate, int paramater_count) { | 443 Isolate* isolate, int parameter_count) { |
452 Zone* zone = isolate->interface_descriptor_zone(); | 444 Zone* zone = isolate->interface_descriptor_zone(); |
453 FunctionType* function = | 445 FunctionType* function = |
454 Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); | 446 Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); |
455 function->InitParameter(0, AnyTagged(zone)); // target | 447 function->InitParameter(0, AnyTagged(zone)); // target |
456 function->InitParameter(1, AnyTagged(zone)); // new.target | 448 function->InitParameter(1, AnyTagged(zone)); // new.target |
457 function->InitParameter(2, UntaggedIntegral32(zone)); // actual #arguments | 449 function->InitParameter(2, UntaggedIntegral32(zone)); // actual #arguments |
458 return function; | 450 return function; |
459 } | 451 } |
460 | 452 |
461 FunctionType* | 453 FunctionType* |
462 CallFunctionWithFeedbackDescriptor::BuildCallInterfaceDescriptorFunctionType( | 454 CallFunctionWithFeedbackDescriptor::BuildCallInterfaceDescriptorFunctionType( |
463 Isolate* isolate, int paramater_count) { | 455 Isolate* isolate, int parameter_count) { |
464 Zone* zone = isolate->interface_descriptor_zone(); | 456 Zone* zone = isolate->interface_descriptor_zone(); |
465 FunctionType* function = | 457 FunctionType* function = |
466 Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); | 458 Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction(); |
467 function->InitParameter(0, Type::Receiver()); // JSFunction | 459 function->InitParameter(0, Type::Receiver()); // JSFunction |
468 function->InitParameter(1, SmiType(zone)); | 460 function->InitParameter(1, SmiType(zone)); |
469 return function; | 461 return function; |
470 } | 462 } |
471 | 463 |
472 FunctionType* CallFunctionWithFeedbackAndVectorDescriptor:: | 464 FunctionType* CallFunctionWithFeedbackAndVectorDescriptor:: |
473 BuildCallInterfaceDescriptorFunctionType(Isolate* isolate, | 465 BuildCallInterfaceDescriptorFunctionType(Isolate* isolate, |
474 int paramater_count) { | 466 int parameter_count) { |
475 Zone* zone = isolate->interface_descriptor_zone(); | 467 Zone* zone = isolate->interface_descriptor_zone(); |
476 FunctionType* function = | 468 FunctionType* function = |
477 Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); | 469 Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); |
478 function->InitParameter(0, Type::Receiver()); // JSFunction | 470 function->InitParameter(0, Type::Receiver()); // JSFunction |
479 function->InitParameter(1, SmiType(zone)); | 471 function->InitParameter(1, SmiType(zone)); |
480 function->InitParameter(2, AnyTagged(zone)); | 472 function->InitParameter(2, AnyTagged(zone)); |
481 return function; | 473 return function; |
482 } | 474 } |
483 | 475 |
484 FunctionType* | 476 FunctionType* |
485 ArrayNoArgumentConstructorDescriptor::BuildCallInterfaceDescriptorFunctionType( | 477 ArrayNoArgumentConstructorDescriptor::BuildCallInterfaceDescriptorFunctionType( |
486 Isolate* isolate, int paramater_count) { | 478 Isolate* isolate, int parameter_count) { |
487 Zone* zone = isolate->interface_descriptor_zone(); | 479 Zone* zone = isolate->interface_descriptor_zone(); |
488 FunctionType* function = | 480 FunctionType* function = |
489 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 481 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); |
490 function->InitParameter(0, Type::Receiver()); // JSFunction | 482 function->InitParameter(0, Type::Receiver()); // JSFunction |
491 function->InitParameter(1, AnyTagged(zone)); | 483 function->InitParameter(1, AnyTagged(zone)); |
492 function->InitParameter(2, UntaggedIntegral32(zone)); | 484 function->InitParameter(2, UntaggedIntegral32(zone)); |
493 function->InitParameter(3, AnyTagged(zone)); | 485 function->InitParameter(3, AnyTagged(zone)); |
494 return function; | 486 return function; |
495 } | 487 } |
496 | 488 |
497 FunctionType* ArraySingleArgumentConstructorDescriptor:: | 489 FunctionType* ArraySingleArgumentConstructorDescriptor:: |
498 BuildCallInterfaceDescriptorFunctionType(Isolate* isolate, | 490 BuildCallInterfaceDescriptorFunctionType(Isolate* isolate, |
499 int paramater_count) { | 491 int parameter_count) { |
500 Zone* zone = isolate->interface_descriptor_zone(); | 492 Zone* zone = isolate->interface_descriptor_zone(); |
501 FunctionType* function = | 493 FunctionType* function = |
502 Type::Function(AnyTagged(zone), Type::Undefined(), 5, zone)->AsFunction(); | 494 Type::Function(AnyTagged(zone), Type::Undefined(), 5, zone)->AsFunction(); |
503 function->InitParameter(0, Type::Receiver()); // JSFunction | 495 function->InitParameter(0, Type::Receiver()); // JSFunction |
504 function->InitParameter(1, AnyTagged(zone)); | 496 function->InitParameter(1, AnyTagged(zone)); |
505 function->InitParameter(2, UntaggedIntegral32(zone)); | 497 function->InitParameter(2, UntaggedIntegral32(zone)); |
506 function->InitParameter(3, AnyTagged(zone)); | 498 function->InitParameter(3, AnyTagged(zone)); |
507 function->InitParameter(4, AnyTagged(zone)); | 499 function->InitParameter(4, AnyTagged(zone)); |
508 return function; | 500 return function; |
509 } | 501 } |
510 | 502 |
511 FunctionType* | 503 FunctionType* |
512 ArrayNArgumentsConstructorDescriptor::BuildCallInterfaceDescriptorFunctionType( | 504 ArrayNArgumentsConstructorDescriptor::BuildCallInterfaceDescriptorFunctionType( |
513 Isolate* isolate, int paramater_count) { | 505 Isolate* isolate, int parameter_count) { |
514 Zone* zone = isolate->interface_descriptor_zone(); | 506 Zone* zone = isolate->interface_descriptor_zone(); |
515 FunctionType* function = | 507 FunctionType* function = |
516 Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); | 508 Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction(); |
517 function->InitParameter(0, Type::Receiver()); // JSFunction | 509 function->InitParameter(0, Type::Receiver()); // JSFunction |
518 function->InitParameter(1, AnyTagged(zone)); // Allocation site or undefined | 510 function->InitParameter(1, AnyTagged(zone)); // Allocation site or undefined |
519 function->InitParameter(2, UntaggedIntegral32(zone)); // Arg count | 511 function->InitParameter(2, UntaggedIntegral32(zone)); // Arg count |
520 return function; | 512 return function; |
521 } | 513 } |
522 | 514 |
523 FunctionType* | 515 FunctionType* |
524 ArgumentAdaptorDescriptor::BuildCallInterfaceDescriptorFunctionType( | 516 ArgumentAdaptorDescriptor::BuildCallInterfaceDescriptorFunctionType( |
525 Isolate* isolate, int paramater_count) { | 517 Isolate* isolate, int parameter_count) { |
526 Zone* zone = isolate->interface_descriptor_zone(); | 518 Zone* zone = isolate->interface_descriptor_zone(); |
527 FunctionType* function = | 519 FunctionType* function = |
528 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 520 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); |
529 function->InitParameter(0, Type::Receiver()); // JSFunction | 521 function->InitParameter(0, Type::Receiver()); // JSFunction |
530 function->InitParameter(1, AnyTagged(zone)); // the new target | 522 function->InitParameter(1, AnyTagged(zone)); // the new target |
531 function->InitParameter(2, UntaggedIntegral32(zone)); // actual #arguments | 523 function->InitParameter(2, UntaggedIntegral32(zone)); // actual #arguments |
532 function->InitParameter(3, UntaggedIntegral32(zone)); // expected #arguments | 524 function->InitParameter(3, UntaggedIntegral32(zone)); // expected #arguments |
533 return function; | 525 return function; |
534 } | 526 } |
535 | 527 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
583 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); | 575 Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction(); |
584 function->InitParameter(kAccumulatorParameter, AnyTagged(zone)); | 576 function->InitParameter(kAccumulatorParameter, AnyTagged(zone)); |
585 function->InitParameter(kBytecodeOffsetParameter, UntaggedIntegral32(zone)); | 577 function->InitParameter(kBytecodeOffsetParameter, UntaggedIntegral32(zone)); |
586 function->InitParameter(kBytecodeArrayParameter, AnyTagged(zone)); | 578 function->InitParameter(kBytecodeArrayParameter, AnyTagged(zone)); |
587 function->InitParameter(kDispatchTableParameter, AnyTagged(zone)); | 579 function->InitParameter(kDispatchTableParameter, AnyTagged(zone)); |
588 return function; | 580 return function; |
589 } | 581 } |
590 | 582 |
591 } // namespace internal | 583 } // namespace internal |
592 } // namespace v8 | 584 } // namespace v8 |
OLD | NEW |