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

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

Issue 207063002: Refactor to support multiple outputs in location summary (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 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
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/intermediate_language.h" 5 #include "vm/intermediate_language.h"
6 6
7 #include "vm/bigint_operations.h" 7 #include "vm/bigint_operations.h"
8 #include "vm/bit_vector.h" 8 #include "vm/bit_vector.h"
9 #include "vm/cpu.h" 9 #include "vm/cpu.h"
10 #include "vm/dart_entry.h" 10 #include "vm/dart_entry.h"
(...skipping 2057 matching lines...) Expand 10 before | Expand all | Expand 10 after
2068 LocationSummary::kNoCall) 2068 LocationSummary::kNoCall)
2069 : LocationSummary::Make(0, 2069 : LocationSummary::Make(0,
2070 Location::NoLocation(), 2070 Location::NoLocation(),
2071 LocationSummary::kNoCall); 2071 LocationSummary::kNoCall);
2072 } 2072 }
2073 2073
2074 2074
2075 void DropTempsInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 2075 void DropTempsInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
2076 ASSERT(!compiler->is_optimizing()); 2076 ASSERT(!compiler->is_optimizing());
2077 // Assert that register assignment is correct. 2077 // Assert that register assignment is correct.
2078 ASSERT((InputCount() == 0) || locs()->out().reg() == locs()->in(0).reg()); 2078 ASSERT((InputCount() == 0) || locs()->out(0).reg() == locs()->in(0).reg());
srdjan 2014/03/20 23:04:23 More parentheses pretty please.
Cutch 2014/03/21 14:36:46 Done.
2079 __ Drop(num_temps()); 2079 __ Drop(num_temps());
2080 } 2080 }
2081 2081
2082 2082
2083 void StoreContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 2083 void StoreContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
2084 // Nothing to do. Context register was loaded by the register allocator. 2084 // Nothing to do. Context register was loaded by the register allocator.
2085 ASSERT(locs()->in(0).reg() == CTX); 2085 ASSERT(locs()->in(0).reg() == CTX);
2086 } 2086 }
2087 2087
2088 2088
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
2179 locs()); 2179 locs());
2180 } 2180 }
2181 2181
2182 2182
2183 void AssertAssignableInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 2183 void AssertAssignableInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
2184 compiler->GenerateAssertAssignable(token_pos(), 2184 compiler->GenerateAssertAssignable(token_pos(),
2185 deopt_id(), 2185 deopt_id(),
2186 dst_type(), 2186 dst_type(),
2187 dst_name(), 2187 dst_name(),
2188 locs()); 2188 locs());
2189 ASSERT(locs()->in(0).reg() == locs()->out().reg()); 2189 ASSERT(locs()->in(0).reg() == locs()->out(0).reg());
2190 } 2190 }
2191 2191
2192 2192
2193 Environment* Environment::From(const GrowableArray<Definition*>& definitions, 2193 Environment* Environment::From(const GrowableArray<Definition*>& definitions,
2194 intptr_t fixed_parameter_count, 2194 intptr_t fixed_parameter_count,
2195 const Code& code) { 2195 const Code& code) {
2196 Environment* env = 2196 Environment* env =
2197 new Environment(definitions.length(), 2197 new Environment(definitions.length(),
2198 fixed_parameter_count, 2198 fixed_parameter_count,
2199 Isolate::kNoDeoptId, 2199 Isolate::kNoDeoptId,
(...skipping 1042 matching lines...) Expand 10 before | Expand all | Expand 10 after
3242 case Token::kTRUNCDIV: return 0; 3242 case Token::kTRUNCDIV: return 0;
3243 case Token::kMOD: return 1; 3243 case Token::kMOD: return 1;
3244 default: UNIMPLEMENTED(); return -1; 3244 default: UNIMPLEMENTED(); return -1;
3245 } 3245 }
3246 } 3246 }
3247 3247
3248 3248
3249 #undef __ 3249 #undef __
3250 3250
3251 } // namespace dart 3251 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698