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

Unified Diff: runtime/vm/intermediate_language_x64.cc

Issue 10696151: Skeleton of a linear scan register allocator. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: address comments Created 8 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 side-by-side diff with in-line comments
Download patch
Index: runtime/vm/intermediate_language_x64.cc
diff --git a/runtime/vm/intermediate_language_x64.cc b/runtime/vm/intermediate_language_x64.cc
index ba50319b5fd7ef0b43a8d69e7c5603b7c255d4e0..2ff995e80f9aafafeb650f1fab12f9e0465765f9 100644
--- a/runtime/vm/intermediate_language_x64.cc
+++ b/runtime/vm/intermediate_language_x64.cc
@@ -32,7 +32,7 @@ LocationSummary* Computation::MakeCallSummary() {
void BindInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
computation()->EmitNativeCode(compiler);
- if (is_used() && locs()->out().kind() == Location::kRegister) {
+ if (is_used() && locs()->out().IsRegister()) {
// TODO(vegorov): this should really happen only for comparisons fused
// with branches. Currrently IR does not provide an easy way to remove
// instructions from the graph so we just leave fused comparison in it
@@ -155,12 +155,7 @@ LocationSummary* ConstantVal::MakeLocationSummary() const {
void ConstantVal::EmitNativeCode(FlowGraphCompiler* compiler) {
Register result = locs()->out().reg();
- if (value().IsSmi()) {
- int64_t imm = reinterpret_cast<int64_t>(value().raw());
- __ movq(result, Immediate(imm));
- } else {
- __ LoadObject(result, value());
- }
+ __ LoadObject(result, value());
}
@@ -448,7 +443,7 @@ LocationSummary* RelationalOpComp::MakeLocationSummary() const {
const intptr_t kNumTemps = 1;
LocationSummary* summary = new LocationSummary(kNumInputs,
kNumTemps,
- LocationSummary::kCall,
+ LocationSummary::kNoCall,
contains_branch);
summary->set_in(0, Location::RequiresRegister());
summary->set_in(1, Location::RequiresRegister());
@@ -1981,6 +1976,7 @@ void PolymorphicInstanceCallComp::EmitNativeCode(FlowGraphCompiler* compiler) {
__ Bind(&done);
}
+
} // namespace dart
#undef __

Powered by Google App Engine
This is Rietveld 408576698