| 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 2103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2114 | 2114 |
| 2115 // Patch the arguments.length and parameters pointer in the current frame. | 2115 // Patch the arguments.length and parameters pointer in the current frame. |
| 2116 __ Ldr(x11, MemOperand(caller_fp, | 2116 __ Ldr(x11, MemOperand(caller_fp, |
| 2117 ArgumentsAdaptorFrameConstants::kLengthOffset)); | 2117 ArgumentsAdaptorFrameConstants::kLengthOffset)); |
| 2118 __ Poke(x11, 0 * kXRegSize); | 2118 __ Poke(x11, 0 * kXRegSize); |
| 2119 __ Add(x10, caller_fp, Operand::UntagSmiAndScale(x11, kPointerSizeLog2)); | 2119 __ Add(x10, caller_fp, Operand::UntagSmiAndScale(x11, kPointerSizeLog2)); |
| 2120 __ Add(x10, x10, StandardFrameConstants::kCallerSPOffset); | 2120 __ Add(x10, x10, StandardFrameConstants::kCallerSPOffset); |
| 2121 __ Poke(x10, 1 * kXRegSize); | 2121 __ Poke(x10, 1 * kXRegSize); |
| 2122 | 2122 |
| 2123 __ Bind(&runtime); | 2123 __ Bind(&runtime); |
| 2124 __ TailCallRuntime(Runtime::kHiddenNewArgumentsFast, 3, 1); | 2124 __ TailCallRuntime(Runtime::kHiddenNewSloppyArguments, 3, 1); |
| 2125 } | 2125 } |
| 2126 | 2126 |
| 2127 | 2127 |
| 2128 void ArgumentsAccessStub::GenerateNewSloppyFast(MacroAssembler* masm) { | 2128 void ArgumentsAccessStub::GenerateNewSloppyFast(MacroAssembler* masm) { |
| 2129 // Stack layout on entry. | 2129 // Stack layout on entry. |
| 2130 // jssp[0]: number of parameters (tagged) | 2130 // jssp[0]: number of parameters (tagged) |
| 2131 // jssp[8]: address of receiver argument | 2131 // jssp[8]: address of receiver argument |
| 2132 // jssp[16]: function | 2132 // jssp[16]: function |
| 2133 // | 2133 // |
| 2134 // Returns pointer to result object in x0. | 2134 // Returns pointer to result object in x0. |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2386 | 2386 |
| 2387 __ Bind(&arguments_test); | 2387 __ Bind(&arguments_test); |
| 2388 __ Cmp(x10, arg_count); | 2388 __ Cmp(x10, arg_count); |
| 2389 __ B(lt, &arguments_loop); | 2389 __ B(lt, &arguments_loop); |
| 2390 | 2390 |
| 2391 __ Ret(); | 2391 __ Ret(); |
| 2392 | 2392 |
| 2393 // Do the runtime call to allocate the arguments object. | 2393 // Do the runtime call to allocate the arguments object. |
| 2394 __ Bind(&runtime); | 2394 __ Bind(&runtime); |
| 2395 __ Push(function, recv_arg, arg_count_smi); | 2395 __ Push(function, recv_arg, arg_count_smi); |
| 2396 __ TailCallRuntime(Runtime::kHiddenNewArgumentsFast, 3, 1); | 2396 __ TailCallRuntime(Runtime::kHiddenNewSloppyArguments, 3, 1); |
| 2397 } | 2397 } |
| 2398 | 2398 |
| 2399 | 2399 |
| 2400 void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) { | 2400 void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) { |
| 2401 // Stack layout on entry. | 2401 // Stack layout on entry. |
| 2402 // jssp[0]: number of parameters (tagged) | 2402 // jssp[0]: number of parameters (tagged) |
| 2403 // jssp[8]: address of receiver argument | 2403 // jssp[8]: address of receiver argument |
| 2404 // jssp[16]: function | 2404 // jssp[16]: function |
| 2405 // | 2405 // |
| 2406 // Returns pointer to result object in x0. | 2406 // Returns pointer to result object in x0. |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2519 __ Sub(param_count, param_count, 1); | 2519 __ Sub(param_count, param_count, 1); |
| 2520 __ Cbnz(param_count, &loop); | 2520 __ Cbnz(param_count, &loop); |
| 2521 | 2521 |
| 2522 // Return from stub. | 2522 // Return from stub. |
| 2523 __ Bind(&done); | 2523 __ Bind(&done); |
| 2524 __ Ret(); | 2524 __ Ret(); |
| 2525 | 2525 |
| 2526 // Do the runtime call to allocate the arguments object. | 2526 // Do the runtime call to allocate the arguments object. |
| 2527 __ Bind(&runtime); | 2527 __ Bind(&runtime); |
| 2528 __ Push(function, params, param_count_smi); | 2528 __ Push(function, params, param_count_smi); |
| 2529 __ TailCallRuntime(Runtime::kHiddenNewStrictArgumentsFast, 3, 1); | 2529 __ TailCallRuntime(Runtime::kHiddenNewStrictArguments, 3, 1); |
| 2530 } | 2530 } |
| 2531 | 2531 |
| 2532 | 2532 |
| 2533 void RegExpExecStub::Generate(MacroAssembler* masm) { | 2533 void RegExpExecStub::Generate(MacroAssembler* masm) { |
| 2534 #ifdef V8_INTERPRETED_REGEXP | 2534 #ifdef V8_INTERPRETED_REGEXP |
| 2535 __ TailCallRuntime(Runtime::kHiddenRegExpExec, 4, 1); | 2535 __ TailCallRuntime(Runtime::kHiddenRegExpExec, 4, 1); |
| 2536 #else // V8_INTERPRETED_REGEXP | 2536 #else // V8_INTERPRETED_REGEXP |
| 2537 | 2537 |
| 2538 // Stack frame on entry. | 2538 // Stack frame on entry. |
| 2539 // jssp[0]: last_match_info (expected JSArray) | 2539 // jssp[0]: last_match_info (expected JSArray) |
| (...skipping 3006 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5546 MemOperand(fp, 6 * kPointerSize), | 5546 MemOperand(fp, 6 * kPointerSize), |
| 5547 NULL); | 5547 NULL); |
| 5548 } | 5548 } |
| 5549 | 5549 |
| 5550 | 5550 |
| 5551 #undef __ | 5551 #undef __ |
| 5552 | 5552 |
| 5553 } } // namespace v8::internal | 5553 } } // namespace v8::internal |
| 5554 | 5554 |
| 5555 #endif // V8_TARGET_ARCH_ARM64 | 5555 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |