OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
8 | 8 |
9 #include "bootstrapper.h" | 9 #include "bootstrapper.h" |
10 #include "code-stubs.h" | 10 #include "code-stubs.h" |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 | 58 |
59 | 59 |
60 void FastCloneShallowArrayStub::InitializeInterfaceDescriptor( | 60 void FastCloneShallowArrayStub::InitializeInterfaceDescriptor( |
61 CodeStubInterfaceDescriptor* descriptor) { | 61 CodeStubInterfaceDescriptor* descriptor) { |
62 // x3: array literals array | 62 // x3: array literals array |
63 // x2: array literal index | 63 // x2: array literal index |
64 // x1: constant elements | 64 // x1: constant elements |
65 static Register registers[] = { x3, x2, x1 }; | 65 static Register registers[] = { x3, x2, x1 }; |
66 descriptor->register_param_count_ = sizeof(registers) / sizeof(registers[0]); | 66 descriptor->register_param_count_ = sizeof(registers) / sizeof(registers[0]); |
67 descriptor->register_params_ = registers; | 67 descriptor->register_params_ = registers; |
68 static Representation representations[] = { | |
69 Representation::Tagged(), | |
70 Representation::Smi(), | |
71 Representation::Tagged() }; | |
72 descriptor->register_param_representations_ = representations; | |
73 descriptor->deoptimization_handler_ = | 68 descriptor->deoptimization_handler_ = |
74 Runtime::FunctionForId( | 69 Runtime::FunctionForId( |
75 Runtime::kHiddenCreateArrayLiteralStubBailout)->entry; | 70 Runtime::kHiddenCreateArrayLiteralStubBailout)->entry; |
76 } | 71 } |
77 | 72 |
78 | 73 |
79 void FastCloneShallowObjectStub::InitializeInterfaceDescriptor( | 74 void FastCloneShallowObjectStub::InitializeInterfaceDescriptor( |
80 CodeStubInterfaceDescriptor* descriptor) { | 75 CodeStubInterfaceDescriptor* descriptor) { |
81 // x3: object literals array | 76 // x3: object literals array |
82 // x2: object literal index | 77 // x2: object literal index |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 descriptor->register_param_count_ = | 223 descriptor->register_param_count_ = |
229 sizeof(registers_no_args) / sizeof(registers_no_args[0]); | 224 sizeof(registers_no_args) / sizeof(registers_no_args[0]); |
230 descriptor->register_params_ = registers_no_args; | 225 descriptor->register_params_ = registers_no_args; |
231 } else { | 226 } else { |
232 // stack param count needs (constructor pointer, and single argument) | 227 // stack param count needs (constructor pointer, and single argument) |
233 descriptor->handler_arguments_mode_ = PASS_ARGUMENTS; | 228 descriptor->handler_arguments_mode_ = PASS_ARGUMENTS; |
234 descriptor->stack_parameter_count_ = x0; | 229 descriptor->stack_parameter_count_ = x0; |
235 descriptor->register_param_count_ = | 230 descriptor->register_param_count_ = |
236 sizeof(registers_variable_args) / sizeof(registers_variable_args[0]); | 231 sizeof(registers_variable_args) / sizeof(registers_variable_args[0]); |
237 descriptor->register_params_ = registers_variable_args; | 232 descriptor->register_params_ = registers_variable_args; |
238 static Representation representations[] = { | |
239 Representation::Tagged(), | |
240 Representation::Tagged(), | |
241 Representation::Integer32() }; | |
242 descriptor->register_param_representations_ = representations; | |
243 } | 233 } |
244 | 234 |
245 descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count; | 235 descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count; |
246 descriptor->function_mode_ = JS_FUNCTION_STUB_MODE; | 236 descriptor->function_mode_ = JS_FUNCTION_STUB_MODE; |
247 descriptor->deoptimization_handler_ = | 237 descriptor->deoptimization_handler_ = |
248 Runtime::FunctionForId(Runtime::kHiddenArrayConstructor)->entry; | 238 Runtime::FunctionForId(Runtime::kHiddenArrayConstructor)->entry; |
249 } | 239 } |
250 | 240 |
251 | 241 |
252 void ArrayNoArgumentConstructorStub::InitializeInterfaceDescriptor( | 242 void ArrayNoArgumentConstructorStub::InitializeInterfaceDescriptor( |
(...skipping 26 matching lines...) Expand all Loading... |
279 descriptor->register_param_count_ = | 269 descriptor->register_param_count_ = |
280 sizeof(registers_no_args) / sizeof(registers_no_args[0]); | 270 sizeof(registers_no_args) / sizeof(registers_no_args[0]); |
281 descriptor->register_params_ = registers_no_args; | 271 descriptor->register_params_ = registers_no_args; |
282 } else { | 272 } else { |
283 // stack param count needs (constructor pointer, and single argument) | 273 // stack param count needs (constructor pointer, and single argument) |
284 descriptor->handler_arguments_mode_ = PASS_ARGUMENTS; | 274 descriptor->handler_arguments_mode_ = PASS_ARGUMENTS; |
285 descriptor->stack_parameter_count_ = x0; | 275 descriptor->stack_parameter_count_ = x0; |
286 descriptor->register_param_count_ = | 276 descriptor->register_param_count_ = |
287 sizeof(registers_variable_args) / sizeof(registers_variable_args[0]); | 277 sizeof(registers_variable_args) / sizeof(registers_variable_args[0]); |
288 descriptor->register_params_ = registers_variable_args; | 278 descriptor->register_params_ = registers_variable_args; |
289 static Representation representations[] = { | |
290 Representation::Tagged(), | |
291 Representation::Integer32() }; | |
292 descriptor->register_param_representations_ = representations; | |
293 } | 279 } |
294 | 280 |
295 descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count; | 281 descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count; |
296 descriptor->function_mode_ = JS_FUNCTION_STUB_MODE; | 282 descriptor->function_mode_ = JS_FUNCTION_STUB_MODE; |
297 descriptor->deoptimization_handler_ = | 283 descriptor->deoptimization_handler_ = |
298 Runtime::FunctionForId(Runtime::kHiddenInternalArrayConstructor)->entry; | 284 Runtime::FunctionForId(Runtime::kHiddenInternalArrayConstructor)->entry; |
299 } | 285 } |
300 | 286 |
301 | 287 |
302 void InternalArrayNoArgumentConstructorStub::InitializeInterfaceDescriptor( | 288 void InternalArrayNoArgumentConstructorStub::InitializeInterfaceDescriptor( |
(...skipping 5200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5503 MemOperand(fp, 6 * kPointerSize), | 5489 MemOperand(fp, 6 * kPointerSize), |
5504 NULL); | 5490 NULL); |
5505 } | 5491 } |
5506 | 5492 |
5507 | 5493 |
5508 #undef __ | 5494 #undef __ |
5509 | 5495 |
5510 } } // namespace v8::internal | 5496 } } // namespace v8::internal |
5511 | 5497 |
5512 #endif // V8_TARGET_ARCH_ARM64 | 5498 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |