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 1685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1696 __ PopCalleeSavedRegisters(); | 1696 __ PopCalleeSavedRegisters(); |
1697 // After this point, we must not modify jssp because it is a callee-saved | 1697 // After this point, we must not modify jssp because it is a callee-saved |
1698 // register which we have just restored. | 1698 // register which we have just restored. |
1699 __ Ret(); | 1699 __ Ret(); |
1700 } | 1700 } |
1701 | 1701 |
1702 | 1702 |
1703 void FunctionPrototypeStub::Generate(MacroAssembler* masm) { | 1703 void FunctionPrototypeStub::Generate(MacroAssembler* masm) { |
1704 Label miss; | 1704 Label miss; |
1705 Register receiver = LoadIC::ReceiverRegister(); | 1705 Register receiver = LoadIC::ReceiverRegister(); |
1706 Register name = LoadIC::NameRegister(); | |
1707 | 1706 |
1708 ASSERT(kind() == Code::LOAD_IC || | 1707 NamedLoadHandlerCompiler::GenerateLoadFunctionPrototype(masm, receiver, x10, |
1709 kind() == Code::KEYED_LOAD_IC); | 1708 x11, &miss); |
1710 | |
1711 if (kind() == Code::KEYED_LOAD_IC) { | |
1712 __ Cmp(name, Operand(isolate()->factory()->prototype_string())); | |
1713 __ B(ne, &miss); | |
1714 } | |
1715 | |
1716 StubCompiler::GenerateLoadFunctionPrototype(masm, receiver, x10, x11, &miss); | |
1717 | 1709 |
1718 __ Bind(&miss); | 1710 __ Bind(&miss); |
1719 StubCompiler::TailCallBuiltin(masm, | 1711 PropertyAccessCompiler::TailCallBuiltin( |
1720 BaseLoadStoreStubCompiler::MissBuiltin(kind())); | 1712 masm, PropertyAccessCompiler::MissBuiltin(Code::LOAD_IC)); |
1721 } | 1713 } |
1722 | 1714 |
1723 | 1715 |
1724 void InstanceofStub::Generate(MacroAssembler* masm) { | 1716 void InstanceofStub::Generate(MacroAssembler* masm) { |
1725 // Stack on entry: | 1717 // Stack on entry: |
1726 // jssp[0]: function. | 1718 // jssp[0]: function. |
1727 // jssp[8]: object. | 1719 // jssp[8]: object. |
1728 // | 1720 // |
1729 // Returns result in x0. Zero indicates instanceof, smi 1 indicates not | 1721 // Returns result in x0. Zero indicates instanceof, smi 1 indicates not |
1730 // instanceof. | 1722 // instanceof. |
(...skipping 3670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5401 MemOperand(fp, 6 * kPointerSize), | 5393 MemOperand(fp, 6 * kPointerSize), |
5402 NULL); | 5394 NULL); |
5403 } | 5395 } |
5404 | 5396 |
5405 | 5397 |
5406 #undef __ | 5398 #undef __ |
5407 | 5399 |
5408 } } // namespace v8::internal | 5400 } } // namespace v8::internal |
5409 | 5401 |
5410 #endif // V8_TARGET_ARCH_ARM64 | 5402 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |