| 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 "src/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
| 8 | 8 |
| 9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
| 10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 // x2: length | 95 // x2: length |
| 96 // x1: index (of last match) | 96 // x1: index (of last match) |
| 97 // x0: string | 97 // x0: string |
| 98 Register registers[] = { x2, x1, x0 }; | 98 Register registers[] = { x2, x1, x0 }; |
| 99 descriptor->Initialize( | 99 descriptor->Initialize( |
| 100 ARRAY_SIZE(registers), registers, | 100 ARRAY_SIZE(registers), registers, |
| 101 Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry); | 101 Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry); |
| 102 } | 102 } |
| 103 | 103 |
| 104 | 104 |
| 105 void LoadFieldStub::InitializeInterfaceDescriptor( |
| 106 CodeStubInterfaceDescriptor* descriptor) { |
| 107 // x0: receiver |
| 108 Register registers[] = { x0 }; |
| 109 descriptor->Initialize(ARRAY_SIZE(registers), registers); |
| 110 } |
| 111 |
| 112 |
| 113 void KeyedLoadFieldStub::InitializeInterfaceDescriptor( |
| 114 CodeStubInterfaceDescriptor* descriptor) { |
| 115 // x1: receiver |
| 116 Register registers[] = { x1 }; |
| 117 descriptor->Initialize(ARRAY_SIZE(registers), registers); |
| 118 } |
| 119 |
| 120 |
| 121 void StringLengthStub::InitializeInterfaceDescriptor( |
| 122 CodeStubInterfaceDescriptor* descriptor) { |
| 123 Register registers[] = { x0, x2 }; |
| 124 descriptor->Initialize(ARRAY_SIZE(registers), registers); |
| 125 } |
| 126 |
| 127 |
| 128 void KeyedStringLengthStub::InitializeInterfaceDescriptor( |
| 129 CodeStubInterfaceDescriptor* descriptor) { |
| 130 Register registers[] = { x1, x0 }; |
| 131 descriptor->Initialize(ARRAY_SIZE(registers), registers); |
| 132 } |
| 133 |
| 134 |
| 105 void KeyedStoreFastElementStub::InitializeInterfaceDescriptor( | 135 void KeyedStoreFastElementStub::InitializeInterfaceDescriptor( |
| 106 CodeStubInterfaceDescriptor* descriptor) { | 136 CodeStubInterfaceDescriptor* descriptor) { |
| 107 // x2: receiver | 137 // x2: receiver |
| 108 // x1: key | 138 // x1: key |
| 109 // x0: value | 139 // x0: value |
| 110 Register registers[] = { x2, x1, x0 }; | 140 Register registers[] = { x2, x1, x0 }; |
| 111 descriptor->Initialize( | 141 descriptor->Initialize( |
| 112 ARRAY_SIZE(registers), registers, | 142 ARRAY_SIZE(registers), registers, |
| 113 FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure)); | 143 FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure)); |
| 114 } | 144 } |
| (...skipping 2303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2418 | 2448 |
| 2419 // Do the runtime call to allocate the arguments object. | 2449 // Do the runtime call to allocate the arguments object. |
| 2420 __ Bind(&runtime); | 2450 __ Bind(&runtime); |
| 2421 __ Push(function, params, param_count_smi); | 2451 __ Push(function, params, param_count_smi); |
| 2422 __ TailCallRuntime(Runtime::kNewStrictArguments, 3, 1); | 2452 __ TailCallRuntime(Runtime::kNewStrictArguments, 3, 1); |
| 2423 } | 2453 } |
| 2424 | 2454 |
| 2425 | 2455 |
| 2426 void RegExpExecStub::Generate(MacroAssembler* masm) { | 2456 void RegExpExecStub::Generate(MacroAssembler* masm) { |
| 2427 #ifdef V8_INTERPRETED_REGEXP | 2457 #ifdef V8_INTERPRETED_REGEXP |
| 2428 __ TailCallRuntime(Runtime::kRegExpExecRT, 4, 1); | 2458 __ TailCallRuntime(Runtime::kRegExpExec, 4, 1); |
| 2429 #else // V8_INTERPRETED_REGEXP | 2459 #else // V8_INTERPRETED_REGEXP |
| 2430 | 2460 |
| 2431 // Stack frame on entry. | 2461 // Stack frame on entry. |
| 2432 // jssp[0]: last_match_info (expected JSArray) | 2462 // jssp[0]: last_match_info (expected JSArray) |
| 2433 // jssp[8]: previous index | 2463 // jssp[8]: previous index |
| 2434 // jssp[16]: subject string | 2464 // jssp[16]: subject string |
| 2435 // jssp[24]: JSRegExp object | 2465 // jssp[24]: JSRegExp object |
| 2436 Label runtime; | 2466 Label runtime; |
| 2437 | 2467 |
| 2438 // Use of registers for this function. | 2468 // Use of registers for this function. |
| (...skipping 3000 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5439 MemOperand(fp, 6 * kPointerSize), | 5469 MemOperand(fp, 6 * kPointerSize), |
| 5440 NULL); | 5470 NULL); |
| 5441 } | 5471 } |
| 5442 | 5472 |
| 5443 | 5473 |
| 5444 #undef __ | 5474 #undef __ |
| 5445 | 5475 |
| 5446 } } // namespace v8::internal | 5476 } } // namespace v8::internal |
| 5447 | 5477 |
| 5448 #endif // V8_TARGET_ARCH_ARM64 | 5478 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |