| 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 #if V8_TARGET_ARCH_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 |
| 6 | 6 |
| 7 #include "src/code-stubs.h" | 7 #include "src/code-stubs.h" |
| 8 #include "src/api-arguments.h" | 8 #include "src/api-arguments.h" |
| 9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
| 10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
| (...skipping 1250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1261 // Restore the callee-saved registers and return. | 1261 // Restore the callee-saved registers and return. |
| 1262 DCHECK(jssp.Is(__ StackPointer())); | 1262 DCHECK(jssp.Is(__ StackPointer())); |
| 1263 __ Mov(csp, jssp); | 1263 __ Mov(csp, jssp); |
| 1264 __ SetStackPointer(csp); | 1264 __ SetStackPointer(csp); |
| 1265 __ PopCalleeSavedRegisters(); | 1265 __ PopCalleeSavedRegisters(); |
| 1266 // After this point, we must not modify jssp because it is a callee-saved | 1266 // After this point, we must not modify jssp because it is a callee-saved |
| 1267 // register which we have just restored. | 1267 // register which we have just restored. |
| 1268 __ Ret(); | 1268 __ Ret(); |
| 1269 } | 1269 } |
| 1270 | 1270 |
| 1271 | |
| 1272 void FunctionPrototypeStub::Generate(MacroAssembler* masm) { | |
| 1273 Label miss; | |
| 1274 Register receiver = LoadDescriptor::ReceiverRegister(); | |
| 1275 // Ensure that the vector and slot registers won't be clobbered before | |
| 1276 // calling the miss handler. | |
| 1277 DCHECK(!AreAliased(x10, x11, LoadWithVectorDescriptor::VectorRegister(), | |
| 1278 LoadWithVectorDescriptor::SlotRegister())); | |
| 1279 | |
| 1280 NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, x10, | |
| 1281 x11, &miss); | |
| 1282 | |
| 1283 __ Bind(&miss); | |
| 1284 PropertyAccessCompiler::TailCallBuiltin( | |
| 1285 masm, PropertyAccessCompiler::MissBuiltin(Code::LOAD_IC)); | |
| 1286 } | |
| 1287 | |
| 1288 void RegExpExecStub::Generate(MacroAssembler* masm) { | 1271 void RegExpExecStub::Generate(MacroAssembler* masm) { |
| 1289 #ifdef V8_INTERPRETED_REGEXP | 1272 #ifdef V8_INTERPRETED_REGEXP |
| 1290 __ TailCallRuntime(Runtime::kRegExpExec); | 1273 __ TailCallRuntime(Runtime::kRegExpExec); |
| 1291 #else // V8_INTERPRETED_REGEXP | 1274 #else // V8_INTERPRETED_REGEXP |
| 1292 | 1275 |
| 1293 // Stack frame on entry. | 1276 // Stack frame on entry. |
| 1294 // jssp[0]: last_match_info (expected JSArray) | 1277 // jssp[0]: last_match_info (expected JSArray) |
| 1295 // jssp[8]: previous index | 1278 // jssp[8]: previous index |
| 1296 // jssp[16]: subject string | 1279 // jssp[16]: subject string |
| 1297 // jssp[24]: JSRegExp object | 1280 // jssp[24]: JSRegExp object |
| (...skipping 2328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3626 kStackUnwindSpace, NULL, spill_offset, | 3609 kStackUnwindSpace, NULL, spill_offset, |
| 3627 return_value_operand, NULL); | 3610 return_value_operand, NULL); |
| 3628 } | 3611 } |
| 3629 | 3612 |
| 3630 #undef __ | 3613 #undef __ |
| 3631 | 3614 |
| 3632 } // namespace internal | 3615 } // namespace internal |
| 3633 } // namespace v8 | 3616 } // namespace v8 |
| 3634 | 3617 |
| 3635 #endif // V8_TARGET_ARCH_ARM64 | 3618 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |