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/arm64/frames-arm64.h" | 5 #include "src/arm64/frames-arm64.h" |
6 #include "src/arm64/lithium-codegen-arm64.h" | 6 #include "src/arm64/lithium-codegen-arm64.h" |
7 #include "src/arm64/lithium-gap-resolver-arm64.h" | 7 #include "src/arm64/lithium-gap-resolver-arm64.h" |
8 #include "src/base/bits.h" | 8 #include "src/base/bits.h" |
9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 3183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3194 void LCodeGen::EmitVectorLoadICRegisters(T* instr) { | 3194 void LCodeGen::EmitVectorLoadICRegisters(T* instr) { |
3195 Register vector_register = ToRegister(instr->temp_vector()); | 3195 Register vector_register = ToRegister(instr->temp_vector()); |
3196 Register slot_register = LoadWithVectorDescriptor::SlotRegister(); | 3196 Register slot_register = LoadWithVectorDescriptor::SlotRegister(); |
3197 DCHECK(vector_register.is(LoadWithVectorDescriptor::VectorRegister())); | 3197 DCHECK(vector_register.is(LoadWithVectorDescriptor::VectorRegister())); |
3198 DCHECK(slot_register.is(x0)); | 3198 DCHECK(slot_register.is(x0)); |
3199 | 3199 |
3200 AllowDeferredHandleDereference vector_structure_check; | 3200 AllowDeferredHandleDereference vector_structure_check; |
3201 Handle<TypeFeedbackVector> vector = instr->hydrogen()->feedback_vector(); | 3201 Handle<TypeFeedbackVector> vector = instr->hydrogen()->feedback_vector(); |
3202 __ Mov(vector_register, vector); | 3202 __ Mov(vector_register, vector); |
3203 // No need to allocate this register. | 3203 // No need to allocate this register. |
3204 FeedbackVectorICSlot slot = instr->hydrogen()->slot(); | 3204 FeedbackVectorSlot slot = instr->hydrogen()->slot(); |
3205 int index = vector->GetIndex(slot); | 3205 int index = vector->GetIndex(slot); |
3206 __ Mov(slot_register, Smi::FromInt(index)); | 3206 __ Mov(slot_register, Smi::FromInt(index)); |
3207 } | 3207 } |
3208 | 3208 |
3209 | 3209 |
3210 template <class T> | 3210 template <class T> |
3211 void LCodeGen::EmitVectorStoreICRegisters(T* instr) { | 3211 void LCodeGen::EmitVectorStoreICRegisters(T* instr) { |
3212 Register vector_register = ToRegister(instr->temp_vector()); | 3212 Register vector_register = ToRegister(instr->temp_vector()); |
3213 Register slot_register = ToRegister(instr->temp_slot()); | 3213 Register slot_register = ToRegister(instr->temp_slot()); |
3214 | 3214 |
3215 AllowDeferredHandleDereference vector_structure_check; | 3215 AllowDeferredHandleDereference vector_structure_check; |
3216 Handle<TypeFeedbackVector> vector = instr->hydrogen()->feedback_vector(); | 3216 Handle<TypeFeedbackVector> vector = instr->hydrogen()->feedback_vector(); |
3217 __ Mov(vector_register, vector); | 3217 __ Mov(vector_register, vector); |
3218 FeedbackVectorICSlot slot = instr->hydrogen()->slot(); | 3218 FeedbackVectorSlot slot = instr->hydrogen()->slot(); |
3219 int index = vector->GetIndex(slot); | 3219 int index = vector->GetIndex(slot); |
3220 __ Mov(slot_register, Smi::FromInt(index)); | 3220 __ Mov(slot_register, Smi::FromInt(index)); |
3221 } | 3221 } |
3222 | 3222 |
3223 | 3223 |
3224 void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) { | 3224 void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) { |
3225 DCHECK(ToRegister(instr->context()).is(cp)); | 3225 DCHECK(ToRegister(instr->context()).is(cp)); |
3226 DCHECK(ToRegister(instr->global_object()) | 3226 DCHECK(ToRegister(instr->global_object()) |
3227 .is(LoadDescriptor::ReceiverRegister())); | 3227 .is(LoadDescriptor::ReceiverRegister())); |
3228 DCHECK(ToRegister(instr->result()).Is(x0)); | 3228 DCHECK(ToRegister(instr->result()).Is(x0)); |
(...skipping 2783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6012 Handle<ScopeInfo> scope_info = instr->scope_info(); | 6012 Handle<ScopeInfo> scope_info = instr->scope_info(); |
6013 __ Push(scope_info); | 6013 __ Push(scope_info); |
6014 __ Push(ToRegister(instr->function())); | 6014 __ Push(ToRegister(instr->function())); |
6015 CallRuntime(Runtime::kPushBlockContext, 2, instr); | 6015 CallRuntime(Runtime::kPushBlockContext, 2, instr); |
6016 RecordSafepoint(Safepoint::kNoLazyDeopt); | 6016 RecordSafepoint(Safepoint::kNoLazyDeopt); |
6017 } | 6017 } |
6018 | 6018 |
6019 | 6019 |
6020 } // namespace internal | 6020 } // namespace internal |
6021 } // namespace v8 | 6021 } // namespace v8 |
OLD | NEW |