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

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

Issue 2896903002: Shuffle around deopt id allocation to give the flow graph builder a chance to record other data as … (Closed)
Patch Set: . Created 3 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 | « runtime/vm/intermediate_language_arm64.cc ('k') | runtime/vm/intermediate_language_mips.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 (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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_IA32. 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_IA32.
6 #if defined(TARGET_ARCH_IA32) 6 #if defined(TARGET_ARCH_IA32)
7 7
8 #include "vm/intermediate_language.h" 8 #include "vm/intermediate_language.h"
9 9
10 #include "vm/compiler.h" 10 #include "vm/compiler.h"
(...skipping 2106 matching lines...) Expand 10 before | Expand all | Expand 10 after
2117 __ popl(kResultReg); 2117 __ popl(kResultReg);
2118 __ Bind(&done); 2118 __ Bind(&done);
2119 return; 2119 return;
2120 } 2120 }
2121 } 2121 }
2122 2122
2123 __ Bind(&slow_path); 2123 __ Bind(&slow_path);
2124 const Code& stub = Code::ZoneHandle(compiler->zone(), 2124 const Code& stub = Code::ZoneHandle(compiler->zone(),
2125 StubCode::AllocateArray_entry()->code()); 2125 StubCode::AllocateArray_entry()->code());
2126 compiler->AddStubCallTarget(stub); 2126 compiler->AddStubCallTarget(stub);
2127 compiler->GenerateCallWithDeopt(token_pos(), deopt_id(), 2127 if (deopt_id() == Thread::kNoDeoptId) {
2128 *StubCode::AllocateArray_entry(), 2128 ASSERT(compiler->is_optimizing());
2129 RawPcDescriptors::kOther, locs()); 2129 compiler->GenerateCall(token_pos(), *StubCode::AllocateArray_entry(),
2130 RawPcDescriptors::kOther, locs());
2131 } else {
2132 compiler->GenerateCallWithDeopt(token_pos(), deopt_id(),
2133 *StubCode::AllocateArray_entry(),
2134 RawPcDescriptors::kOther, locs());
2135 }
2130 __ Bind(&done); 2136 __ Bind(&done);
2131 ASSERT(locs()->out(0).reg() == kResultReg); 2137 ASSERT(locs()->out(0).reg() == kResultReg);
2132 } 2138 }
2133 2139
2134 2140
2135 LocationSummary* LoadFieldInstr::MakeLocationSummary(Zone* zone, 2141 LocationSummary* LoadFieldInstr::MakeLocationSummary(Zone* zone,
2136 bool opt) const { 2142 bool opt) const {
2137 const intptr_t kNumInputs = 1; 2143 const intptr_t kNumInputs = 1;
2138 const intptr_t kNumTemps = 2144 const intptr_t kNumTemps =
2139 (IsUnboxedLoad() && opt) ? 1 : ((IsPotentialUnboxedLoad()) ? 2 : 0); 2145 (IsUnboxedLoad() && opt) ? 1 : ((IsPotentialUnboxedLoad()) ? 2 : 0);
(...skipping 4793 matching lines...) Expand 10 before | Expand all | Expand 10 after
6933 __ Drop(1); 6939 __ Drop(1);
6934 __ popl(result); 6940 __ popl(result);
6935 } 6941 }
6936 6942
6937 6943
6938 } // namespace dart 6944 } // namespace dart
6939 6945
6940 #undef __ 6946 #undef __
6941 6947
6942 #endif // defined TARGET_ARCH_IA32 6948 #endif // defined TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « runtime/vm/intermediate_language_arm64.cc ('k') | runtime/vm/intermediate_language_mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698