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

Side by Side Diff: runtime/vm/flow_graph_compiler_arm64.cc

Issue 2098573004: DBC: CheckClassInstr (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Trying to find static call deopt bug Created 4 years, 5 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
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM64. 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM64.
6 #if defined(TARGET_ARCH_ARM64) 6 #if defined(TARGET_ARCH_ARM64)
7 7
8 #include "vm/flow_graph_compiler.h" 8 #include "vm/flow_graph_compiler.h"
9 9
10 #include "vm/ast_printer.h" 10 #include "vm/ast_printer.h"
(...skipping 1173 matching lines...) Expand 10 before | Expand all | Expand 10 after
1184 // call sites are never patched for breakpoints: the function is deoptimized 1184 // call sites are never patched for breakpoints: the function is deoptimized
1185 // and the unoptimized code with IC calls for static calls is patched instead. 1185 // and the unoptimized code with IC calls for static calls is patched instead.
1186 ASSERT(is_optimizing()); 1186 ASSERT(is_optimizing());
1187 __ BranchLinkWithEquivalence(stub_entry, target); 1187 __ BranchLinkWithEquivalence(stub_entry, target);
1188 1188
1189 AddCurrentDescriptor(kind, deopt_id, token_pos); 1189 AddCurrentDescriptor(kind, deopt_id, token_pos);
1190 RecordSafepoint(locs); 1190 RecordSafepoint(locs);
1191 // Marks either the continuation point in unoptimized code or the 1191 // Marks either the continuation point in unoptimized code or the
1192 // deoptimization point in optimized code, after call. 1192 // deoptimization point in optimized code, after call.
1193 const intptr_t deopt_id_after = Thread::ToDeoptAfter(deopt_id); 1193 const intptr_t deopt_id_after = Thread::ToDeoptAfter(deopt_id);
1194 if (is_optimizing()) { 1194 AddDeoptIndexAtCall(deopt_id_after, token_pos);
1195 AddDeoptIndexAtCall(deopt_id_after, token_pos);
1196 } else {
1197 // Add deoptimization continuation point after the call and before the
1198 // arguments are removed.
1199 AddCurrentDescriptor(RawPcDescriptors::kDeopt, deopt_id_after, token_pos);
1200 }
1201 AddStaticCallTarget(target); 1195 AddStaticCallTarget(target);
1202 } 1196 }
1203 1197
1204 1198
1205 void FlowGraphCompiler::GenerateRuntimeCall(TokenPosition token_pos, 1199 void FlowGraphCompiler::GenerateRuntimeCall(TokenPosition token_pos,
1206 intptr_t deopt_id, 1200 intptr_t deopt_id,
1207 const RuntimeEntry& entry, 1201 const RuntimeEntry& entry,
1208 intptr_t argument_count, 1202 intptr_t argument_count,
1209 LocationSummary* locs) { 1203 LocationSummary* locs) {
1210 __ CallRuntime(entry, argument_count); 1204 __ CallRuntime(entry, argument_count);
(...skipping 725 matching lines...) Expand 10 before | Expand all | Expand 10 after
1936 void ParallelMoveResolver::RestoreFpuScratch(FpuRegister reg) { 1930 void ParallelMoveResolver::RestoreFpuScratch(FpuRegister reg) {
1937 __ PopDouble(reg); 1931 __ PopDouble(reg);
1938 } 1932 }
1939 1933
1940 1934
1941 #undef __ 1935 #undef __
1942 1936
1943 } // namespace dart 1937 } // namespace dart
1944 1938
1945 #endif // defined TARGET_ARCH_ARM64 1939 #endif // defined TARGET_ARCH_ARM64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698