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/full-codegen/full-codegen.h" | 7 #include "src/full-codegen/full-codegen.h" |
8 #include "src/ast/compile-time-value.h" | 8 #include "src/ast/compile-time-value.h" |
9 #include "src/ast/scopes.h" | 9 #include "src/ast/scopes.h" |
10 #include "src/code-factory.h" | 10 #include "src/code-factory.h" |
(...skipping 2102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2113 PopOperands(StoreDescriptor::NameRegister(), | 2113 PopOperands(StoreDescriptor::NameRegister(), |
2114 StoreDescriptor::ReceiverRegister()); | 2114 StoreDescriptor::ReceiverRegister()); |
2115 DCHECK(StoreDescriptor::ValueRegister().is(x0)); | 2115 DCHECK(StoreDescriptor::ValueRegister().is(x0)); |
2116 | 2116 |
2117 CallKeyedStoreIC(expr->AssignmentSlot()); | 2117 CallKeyedStoreIC(expr->AssignmentSlot()); |
2118 | 2118 |
2119 PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER); | 2119 PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER); |
2120 context()->Plug(x0); | 2120 context()->Plug(x0); |
2121 } | 2121 } |
2122 | 2122 |
2123 | |
2124 void FullCodeGenerator::CallIC(Handle<Code> code, | |
2125 TypeFeedbackId ast_id) { | |
2126 ic_total_count_++; | |
2127 // All calls must have a predictable size in full-codegen code to ensure that | |
2128 // the debugger can patch them correctly. | |
2129 __ Call(code, RelocInfo::CODE_TARGET, ast_id); | |
2130 } | |
2131 | |
2132 | |
2133 // Code common for calls using the IC. | 2123 // Code common for calls using the IC. |
2134 void FullCodeGenerator::EmitCallWithLoadIC(Call* expr) { | 2124 void FullCodeGenerator::EmitCallWithLoadIC(Call* expr) { |
2135 ASM_LOCATION("FullCodeGenerator::EmitCallWithLoadIC"); | 2125 ASM_LOCATION("FullCodeGenerator::EmitCallWithLoadIC"); |
2136 Expression* callee = expr->expression(); | 2126 Expression* callee = expr->expression(); |
2137 | 2127 |
2138 // Get the target function. | 2128 // Get the target function. |
2139 ConvertReceiverMode convert_mode; | 2129 ConvertReceiverMode convert_mode; |
2140 if (callee->IsVariableProxy()) { | 2130 if (callee->IsVariableProxy()) { |
2141 { StackValueContext context(this); | 2131 { StackValueContext context(this); |
2142 EmitVariableLoad(callee->AsVariableProxy()); | 2132 EmitVariableLoad(callee->AsVariableProxy()); |
(...skipping 1566 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3709 } | 3699 } |
3710 | 3700 |
3711 return INTERRUPT; | 3701 return INTERRUPT; |
3712 } | 3702 } |
3713 | 3703 |
3714 | 3704 |
3715 } // namespace internal | 3705 } // namespace internal |
3716 } // namespace v8 | 3706 } // namespace v8 |
3717 | 3707 |
3718 #endif // V8_TARGET_ARCH_ARM64 | 3708 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |