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

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

Issue 504493002: Fix deoptimization address patching in Turbofan to use safepoints. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Compilation fix. Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « src/arm/lithium-codegen-arm.cc ('k') | src/compiler/code-generator.h » ('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 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 #include "src/arm64/lithium-codegen-arm64.h" 7 #include "src/arm64/lithium-codegen-arm64.h"
8 #include "src/arm64/lithium-gap-resolver-arm64.h" 8 #include "src/arm64/lithium-gap-resolver-arm64.h"
9 #include "src/code-stubs.h" 9 #include "src/code-stubs.h"
10 #include "src/hydrogen-osr.h" 10 #include "src/hydrogen-osr.h"
(...skipping 919 matching lines...) Expand 10 before | Expand all | Expand 10 after
930 if (code->is_optimized_code()) RegisterWeakObjectsInOptimizedCode(code); 930 if (code->is_optimized_code()) RegisterWeakObjectsInOptimizedCode(code);
931 PopulateDeoptimizationData(code); 931 PopulateDeoptimizationData(code);
932 } 932 }
933 933
934 934
935 void LCodeGen::PopulateDeoptimizationData(Handle<Code> code) { 935 void LCodeGen::PopulateDeoptimizationData(Handle<Code> code) {
936 int length = deoptimizations_.length(); 936 int length = deoptimizations_.length();
937 if (length == 0) return; 937 if (length == 0) return;
938 938
939 Handle<DeoptimizationInputData> data = 939 Handle<DeoptimizationInputData> data =
940 DeoptimizationInputData::New(isolate(), length, 0, TENURED); 940 DeoptimizationInputData::New(isolate(), length, TENURED);
941 941
942 Handle<ByteArray> translations = 942 Handle<ByteArray> translations =
943 translations_.CreateByteArray(isolate()->factory()); 943 translations_.CreateByteArray(isolate()->factory());
944 data->SetTranslationByteArray(*translations); 944 data->SetTranslationByteArray(*translations);
945 data->SetInlinedFunctionCount(Smi::FromInt(inlined_function_count_)); 945 data->SetInlinedFunctionCount(Smi::FromInt(inlined_function_count_));
946 data->SetOptimizationId(Smi::FromInt(info_->optimization_id())); 946 data->SetOptimizationId(Smi::FromInt(info_->optimization_id()));
947 if (info_->IsOptimizing()) { 947 if (info_->IsOptimizing()) {
948 // Reference to shared function info does not change between phases. 948 // Reference to shared function info does not change between phases.
949 AllowDeferredHandleDereference allow_handle_dereference; 949 AllowDeferredHandleDereference allow_handle_dereference;
950 data->SetSharedFunctionInfo(*info_->shared_info()); 950 data->SetSharedFunctionInfo(*info_->shared_info());
(...skipping 5074 matching lines...) Expand 10 before | Expand all | Expand 10 after
6025 Handle<ScopeInfo> scope_info = instr->scope_info(); 6025 Handle<ScopeInfo> scope_info = instr->scope_info();
6026 __ Push(scope_info); 6026 __ Push(scope_info);
6027 __ Push(ToRegister(instr->function())); 6027 __ Push(ToRegister(instr->function()));
6028 CallRuntime(Runtime::kPushBlockContext, 2, instr); 6028 CallRuntime(Runtime::kPushBlockContext, 2, instr);
6029 RecordSafepoint(Safepoint::kNoLazyDeopt); 6029 RecordSafepoint(Safepoint::kNoLazyDeopt);
6030 } 6030 }
6031 6031
6032 6032
6033 6033
6034 } } // namespace v8::internal 6034 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/arm/lithium-codegen-arm.cc ('k') | src/compiler/code-generator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698