Index: runtime/vm/locations.cc |
diff --git a/runtime/vm/locations.cc b/runtime/vm/locations.cc |
index f70f697d2b51c326ba7d543def1e5dfe44bffad7..b64760192c1237bf57ddfd54cbd5600e81669fb4 100644 |
--- a/runtime/vm/locations.cc |
+++ b/runtime/vm/locations.cc |
@@ -43,6 +43,7 @@ LocationSummary* LocationSummary::Make(intptr_t input_count, |
const char* Location::Name() const { |
switch (kind()) { |
case kInvalid: return "?"; |
+ case kSpillSlot: return "S"; |
case kRegister: return Assembler::RegisterName(reg()); |
case kUnallocated: |
switch (policy()) { |
@@ -59,12 +60,21 @@ const char* Location::Name() const { |
} |
+void Location::PrintTo(BufferFormatter* f) const { |
+ if (kind() == kSpillSlot) { |
+ f->Print("S%d", spill_index()); |
+ } else { |
+ f->Print("%s", Name()); |
+ } |
+} |
+ |
+ |
void LocationSummary::PrintTo(BufferFormatter* f) const { |
if (input_count() > 0) { |
f->Print(" ("); |
for (intptr_t i = 0; i < input_count(); i++) { |
if (i != 0) f->Print(", "); |
- f->Print("%s", in(i).Name()); |
+ in(i).PrintTo(f); |
} |
f->Print(")"); |
} |
@@ -73,14 +83,14 @@ void LocationSummary::PrintTo(BufferFormatter* f) const { |
f->Print(" ["); |
for (intptr_t i = 0; i < temp_count(); i++) { |
if (i != 0) f->Print(", "); |
- f->Print("%s", temp(i).Name()); |
+ temp(i).PrintTo(f); |
} |
f->Print("]"); |
} |
if (!out().IsInvalid()) { |
f->Print(" => "); |
- f->Print("%s", out().Name()); |
+ out().PrintTo(f); |
} |
if (is_call()) f->Print(" C"); |