Chromium Code Reviews| 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 4582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4593 if (function_mode_ == JS_FUNCTION_STUB_MODE) { | 4593 if (function_mode_ == JS_FUNCTION_STUB_MODE) { |
| 4594 __ Add(x1, x1, 1); | 4594 __ Add(x1, x1, 1); |
| 4595 } | 4595 } |
| 4596 masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE); | 4596 masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE); |
| 4597 __ Drop(x1); | 4597 __ Drop(x1); |
| 4598 // Return to IC Miss stub, continuation still on stack. | 4598 // Return to IC Miss stub, continuation still on stack. |
| 4599 __ Ret(); | 4599 __ Ret(); |
| 4600 } | 4600 } |
| 4601 | 4601 |
| 4602 | 4602 |
| 4603 void LoadICTrampolineStub::Generate(MacroAssembler* masm) { | |
|
Toon Verwaest
2014/08/26 13:26:57
Why not make this virtual?
| |
| 4604 EmitLoadTypeFeedbackVector(masm, FullVectorLoadConvention::VectorRegister()); | |
| 4605 if (GetCodeKind() == Code::KEYED_LOAD_IC) { | |
| 4606 VectorKeyedLoadStub stub(isolate()); | |
| 4607 __ Jump(stub.GetCode(), RelocInfo::CODE_TARGET); | |
| 4608 } else { | |
| 4609 DCHECK(GetCodeKind() == Code::LOAD_IC); | |
| 4610 VectorLoadStub stub(isolate(), state_); | |
| 4611 __ Jump(stub.GetCode(), RelocInfo::CODE_TARGET); | |
| 4612 } | |
| 4613 } | |
| 4614 | |
| 4615 | |
| 4603 static unsigned int GetProfileEntryHookCallSize(MacroAssembler* masm) { | 4616 static unsigned int GetProfileEntryHookCallSize(MacroAssembler* masm) { |
| 4604 // The entry hook is a "BumpSystemStackPointer" instruction (sub), | 4617 // The entry hook is a "BumpSystemStackPointer" instruction (sub), |
| 4605 // followed by a "Push lr" instruction, followed by a call. | 4618 // followed by a "Push lr" instruction, followed by a call. |
| 4606 unsigned int size = | 4619 unsigned int size = |
| 4607 Assembler::kCallSizeWithRelocation + (2 * kInstructionSize); | 4620 Assembler::kCallSizeWithRelocation + (2 * kInstructionSize); |
| 4608 if (CpuFeatures::IsSupported(ALWAYS_ALIGN_CSP)) { | 4621 if (CpuFeatures::IsSupported(ALWAYS_ALIGN_CSP)) { |
| 4609 // If ALWAYS_ALIGN_CSP then there will be an extra bic instruction in | 4622 // If ALWAYS_ALIGN_CSP then there will be an extra bic instruction in |
| 4610 // "BumpSystemStackPointer". | 4623 // "BumpSystemStackPointer". |
| 4611 size += kInstructionSize; | 4624 size += kInstructionSize; |
| 4612 } | 4625 } |
| (...skipping 810 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5423 MemOperand(fp, 6 * kPointerSize), | 5436 MemOperand(fp, 6 * kPointerSize), |
| 5424 NULL); | 5437 NULL); |
| 5425 } | 5438 } |
| 5426 | 5439 |
| 5427 | 5440 |
| 5428 #undef __ | 5441 #undef __ |
| 5429 | 5442 |
| 5430 } } // namespace v8::internal | 5443 } } // namespace v8::internal |
| 5431 | 5444 |
| 5432 #endif // V8_TARGET_ARCH_ARM64 | 5445 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |