| 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 2210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2221 __ Add(params, x10, StandardFrameConstants::kCallerSPOffset); | 2221 __ Add(params, x10, StandardFrameConstants::kCallerSPOffset); |
| 2222 | 2222 |
| 2223 __ Bind(&runtime); | 2223 __ Bind(&runtime); |
| 2224 __ Push(params, param_count_smi, rest_index_smi); | 2224 __ Push(params, param_count_smi, rest_index_smi); |
| 2225 __ TailCallRuntime(Runtime::kNewRestParam, 3, 1); | 2225 __ TailCallRuntime(Runtime::kNewRestParam, 3, 1); |
| 2226 } | 2226 } |
| 2227 | 2227 |
| 2228 | 2228 |
| 2229 void RegExpExecStub::Generate(MacroAssembler* masm) { | 2229 void RegExpExecStub::Generate(MacroAssembler* masm) { |
| 2230 #ifdef V8_INTERPRETED_REGEXP | 2230 #ifdef V8_INTERPRETED_REGEXP |
| 2231 __ TailCallRuntime(Runtime::kRegExpExecRT, 4, 1); | 2231 __ TailCallRuntime(Runtime::kRegExpExec, 4, 1); |
| 2232 #else // V8_INTERPRETED_REGEXP | 2232 #else // V8_INTERPRETED_REGEXP |
| 2233 | 2233 |
| 2234 // Stack frame on entry. | 2234 // Stack frame on entry. |
| 2235 // jssp[0]: last_match_info (expected JSArray) | 2235 // jssp[0]: last_match_info (expected JSArray) |
| 2236 // jssp[8]: previous index | 2236 // jssp[8]: previous index |
| 2237 // jssp[16]: subject string | 2237 // jssp[16]: subject string |
| 2238 // jssp[24]: JSRegExp object | 2238 // jssp[24]: JSRegExp object |
| 2239 Label runtime; | 2239 Label runtime; |
| 2240 | 2240 |
| 2241 // Use of registers for this function. | 2241 // Use of registers for this function. |
| (...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2686 | 2686 |
| 2687 __ Bind(&failure); | 2687 __ Bind(&failure); |
| 2688 __ Mov(x0, Operand(isolate()->factory()->null_value())); | 2688 __ Mov(x0, Operand(isolate()->factory()->null_value())); |
| 2689 __ PopCPURegList(used_callee_saved_registers); | 2689 __ PopCPURegList(used_callee_saved_registers); |
| 2690 // Drop the 4 arguments of the stub from the stack. | 2690 // Drop the 4 arguments of the stub from the stack. |
| 2691 __ Drop(4); | 2691 __ Drop(4); |
| 2692 __ Ret(); | 2692 __ Ret(); |
| 2693 | 2693 |
| 2694 __ Bind(&runtime); | 2694 __ Bind(&runtime); |
| 2695 __ PopCPURegList(used_callee_saved_registers); | 2695 __ PopCPURegList(used_callee_saved_registers); |
| 2696 __ TailCallRuntime(Runtime::kRegExpExecRT, 4, 1); | 2696 __ TailCallRuntime(Runtime::kRegExpExec, 4, 1); |
| 2697 | 2697 |
| 2698 // Deferred code for string handling. | 2698 // Deferred code for string handling. |
| 2699 // (6) Not a long external string? If yes, go to (8). | 2699 // (6) Not a long external string? If yes, go to (8). |
| 2700 __ Bind(¬_seq_nor_cons); | 2700 __ Bind(¬_seq_nor_cons); |
| 2701 // Compare flags are still set. | 2701 // Compare flags are still set. |
| 2702 __ B(ne, ¬_long_external); // Go to (8). | 2702 __ B(ne, ¬_long_external); // Go to (8). |
| 2703 | 2703 |
| 2704 // (7) External string. Make it, offset-wise, look like a sequential string. | 2704 // (7) External string. Make it, offset-wise, look like a sequential string. |
| 2705 __ Bind(&external_string); | 2705 __ Bind(&external_string); |
| 2706 if (masm->emit_debug_code()) { | 2706 if (masm->emit_debug_code()) { |
| (...skipping 2807 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5514 kStackUnwindSpace, NULL, spill_offset, | 5514 kStackUnwindSpace, NULL, spill_offset, |
| 5515 MemOperand(fp, 6 * kPointerSize), NULL); | 5515 MemOperand(fp, 6 * kPointerSize), NULL); |
| 5516 } | 5516 } |
| 5517 | 5517 |
| 5518 | 5518 |
| 5519 #undef __ | 5519 #undef __ |
| 5520 | 5520 |
| 5521 } } // namespace v8::internal | 5521 } } // namespace v8::internal |
| 5522 | 5522 |
| 5523 #endif // V8_TARGET_ARCH_ARM64 | 5523 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |