Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(188)

Side by Side Diff: src/arm/lithium-codegen-arm.cc

Issue 1109333003: Use a stub in crankshaft for grow store arrays. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix ARM failure. Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/arm/interface-descriptors-arm.cc ('k') | src/arm64/interface-descriptors-arm64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 #include "src/arm/lithium-codegen-arm.h" 7 #include "src/arm/lithium-codegen-arm.h"
8 #include "src/arm/lithium-gap-resolver-arm.h" 8 #include "src/arm/lithium-gap-resolver-arm.h"
9 #include "src/base/bits.h" 9 #include "src/base/bits.h"
10 #include "src/code-factory.h" 10 #include "src/code-factory.h"
(...skipping 3999 matching lines...) Expand 10 before | Expand all | Expand 10 after
4010 } else { 4010 } else {
4011 LPointerMap* pointers = instr->pointer_map(); 4011 LPointerMap* pointers = instr->pointer_map();
4012 SafepointGenerator generator(this, pointers, Safepoint::kLazyDeopt); 4012 SafepointGenerator generator(this, pointers, Safepoint::kLazyDeopt);
4013 4013
4014 if (instr->target()->IsConstantOperand()) { 4014 if (instr->target()->IsConstantOperand()) {
4015 LConstantOperand* target = LConstantOperand::cast(instr->target()); 4015 LConstantOperand* target = LConstantOperand::cast(instr->target());
4016 Handle<Code> code = Handle<Code>::cast(ToHandle(target)); 4016 Handle<Code> code = Handle<Code>::cast(ToHandle(target));
4017 generator.BeforeCall(__ CallSize(code, RelocInfo::CODE_TARGET)); 4017 generator.BeforeCall(__ CallSize(code, RelocInfo::CODE_TARGET));
4018 PlatformInterfaceDescriptor* call_descriptor = 4018 PlatformInterfaceDescriptor* call_descriptor =
4019 instr->descriptor().platform_specific_descriptor(); 4019 instr->descriptor().platform_specific_descriptor();
4020 __ Call(code, RelocInfo::CODE_TARGET, TypeFeedbackId::None(), al, 4020 if (call_descriptor != NULL) {
4021 call_descriptor->storage_mode()); 4021 __ Call(code, RelocInfo::CODE_TARGET, TypeFeedbackId::None(), al,
4022 call_descriptor->storage_mode());
4023 } else {
4024 __ Call(code, RelocInfo::CODE_TARGET, TypeFeedbackId::None(), al);
4025 }
4022 } else { 4026 } else {
4023 DCHECK(instr->target()->IsRegister()); 4027 DCHECK(instr->target()->IsRegister());
4024 Register target = ToRegister(instr->target()); 4028 Register target = ToRegister(instr->target());
4025 generator.BeforeCall(__ CallSize(target)); 4029 generator.BeforeCall(__ CallSize(target));
4026 // Make sure we don't emit any additional entries in the constant pool 4030 // Make sure we don't emit any additional entries in the constant pool
4027 // before the call to ensure that the CallCodeSize() calculated the 4031 // before the call to ensure that the CallCodeSize() calculated the
4028 // correct 4032 // correct
4029 // number of instructions for the constant pool load. 4033 // number of instructions for the constant pool load.
4030 { 4034 {
4031 ConstantPoolUnavailableScope constant_pool_unavailable(masm_); 4035 ConstantPoolUnavailableScope constant_pool_unavailable(masm_);
(...skipping 1911 matching lines...) Expand 10 before | Expand all | Expand 10 after
5943 __ Push(scope_info); 5947 __ Push(scope_info);
5944 __ push(ToRegister(instr->function())); 5948 __ push(ToRegister(instr->function()));
5945 CallRuntime(Runtime::kPushBlockContext, 2, instr); 5949 CallRuntime(Runtime::kPushBlockContext, 2, instr);
5946 RecordSafepoint(Safepoint::kNoLazyDeopt); 5950 RecordSafepoint(Safepoint::kNoLazyDeopt);
5947 } 5951 }
5948 5952
5949 5953
5950 #undef __ 5954 #undef __
5951 5955
5952 } } // namespace v8::internal 5956 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/arm/interface-descriptors-arm.cc ('k') | src/arm64/interface-descriptors-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698