Add dehoisting to the string printout of hydrogen and lithium instructions.

This is nice when looking at hydrogen graphs, to see the real key offset.

R=mmassi@chromium.org
BUG=

Review URL: https://codereview.chromium.org/11348176

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent c412264c
...@@ -373,11 +373,27 @@ void LStoreNamedGeneric::PrintDataTo(StringStream* stream) { ...@@ -373,11 +373,27 @@ void LStoreNamedGeneric::PrintDataTo(StringStream* stream) {
} }
void LLoadKeyed::PrintDataTo(StringStream* stream) {
elements()->PrintTo(stream);
stream->Add("[");
key()->PrintTo(stream);
if (hydrogen()->IsDehoisted()) {
stream->Add(" + %d]", additional_index());
} else {
stream->Add("]");
}
}
void LStoreKeyed::PrintDataTo(StringStream* stream) { void LStoreKeyed::PrintDataTo(StringStream* stream) {
elements()->PrintTo(stream); elements()->PrintTo(stream);
stream->Add("["); stream->Add("[");
key()->PrintTo(stream); key()->PrintTo(stream);
if (hydrogen()->IsDehoisted()) {
stream->Add(" + %d] <-", additional_index());
} else {
stream->Add("] <- "); stream->Add("] <- ");
}
value()->PrintTo(stream); value()->PrintTo(stream);
} }
......
...@@ -1407,6 +1407,7 @@ class LLoadKeyed: public LTemplateInstruction<1, 2, 0> { ...@@ -1407,6 +1407,7 @@ class LLoadKeyed: public LTemplateInstruction<1, 2, 0> {
DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed")
DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) DECLARE_HYDROGEN_ACCESSOR(LoadKeyed)
virtual void PrintDataTo(StringStream* stream);
uint32_t additional_index() const { return hydrogen()->index_offset(); } uint32_t additional_index() const { return hydrogen()->index_offset(); }
}; };
......
...@@ -2014,7 +2014,12 @@ void HLoadKeyed::PrintDataTo(StringStream* stream) { ...@@ -2014,7 +2014,12 @@ void HLoadKeyed::PrintDataTo(StringStream* stream) {
stream->Add("["); stream->Add("[");
key()->PrintNameTo(stream); key()->PrintNameTo(stream);
if (IsDehoisted()) {
stream->Add(" + %d] ", index_offset());
} else {
stream->Add("] "); stream->Add("] ");
}
dependency()->PrintNameTo(stream); dependency()->PrintNameTo(stream);
if (RequiresHoleCheck()) { if (RequiresHoleCheck()) {
stream->Add(" check_hole"); stream->Add(" check_hole");
...@@ -2123,7 +2128,12 @@ void HStoreKeyed::PrintDataTo(StringStream* stream) { ...@@ -2123,7 +2128,12 @@ void HStoreKeyed::PrintDataTo(StringStream* stream) {
stream->Add("["); stream->Add("[");
key()->PrintNameTo(stream); key()->PrintNameTo(stream);
if (IsDehoisted()) {
stream->Add(" + %d] = ", index_offset());
} else {
stream->Add("] = "); stream->Add("] = ");
}
value()->PrintNameTo(stream); value()->PrintNameTo(stream);
} }
......
...@@ -408,11 +408,27 @@ void LStoreNamedGeneric::PrintDataTo(StringStream* stream) { ...@@ -408,11 +408,27 @@ void LStoreNamedGeneric::PrintDataTo(StringStream* stream) {
} }
void LLoadKeyed::PrintDataTo(StringStream* stream) {
elements()->PrintTo(stream);
stream->Add("[");
key()->PrintTo(stream);
if (hydrogen()->IsDehoisted()) {
stream->Add(" + %d]", additional_index());
} else {
stream->Add("]");
}
}
void LStoreKeyed::PrintDataTo(StringStream* stream) { void LStoreKeyed::PrintDataTo(StringStream* stream) {
elements()->PrintTo(stream); elements()->PrintTo(stream);
stream->Add("["); stream->Add("[");
key()->PrintTo(stream); key()->PrintTo(stream);
if (hydrogen()->IsDehoisted()) {
stream->Add(" + %d] <-", additional_index());
} else {
stream->Add("] <- "); stream->Add("] <- ");
}
value()->PrintTo(stream); value()->PrintTo(stream);
} }
......
...@@ -1404,6 +1404,7 @@ class LLoadKeyed: public LTemplateInstruction<1, 2, 0> { ...@@ -1404,6 +1404,7 @@ class LLoadKeyed: public LTemplateInstruction<1, 2, 0> {
DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed")
DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) DECLARE_HYDROGEN_ACCESSOR(LoadKeyed)
virtual void PrintDataTo(StringStream* stream);
uint32_t additional_index() const { return hydrogen()->index_offset(); } uint32_t additional_index() const { return hydrogen()->index_offset(); }
}; };
......
...@@ -373,20 +373,27 @@ void LStoreNamedGeneric::PrintDataTo(StringStream* stream) { ...@@ -373,20 +373,27 @@ void LStoreNamedGeneric::PrintDataTo(StringStream* stream) {
} }
void LStoreKeyed::PrintDataTo(StringStream* stream) { void LLoadKeyed::PrintDataTo(StringStream* stream) {
elements()->PrintTo(stream); elements()->PrintTo(stream);
stream->Add("["); stream->Add("[");
key()->PrintTo(stream); key()->PrintTo(stream);
stream->Add("] <- "); if (hydrogen()->IsDehoisted()) {
value()->PrintTo(stream); stream->Add(" + %d]", additional_index());
} else {
stream->Add("]");
}
} }
void LStoreKeyedGeneric::PrintDataTo(StringStream* stream) { void LStoreKeyed::PrintDataTo(StringStream* stream) {
object()->PrintTo(stream); elements()->PrintTo(stream);
stream->Add("["); stream->Add("[");
key()->PrintTo(stream); key()->PrintTo(stream);
if (hydrogen()->IsDehoisted()) {
stream->Add(" + %d] <-", additional_index());
} else {
stream->Add("] <- "); stream->Add("] <- ");
}
value()->PrintTo(stream); value()->PrintTo(stream);
} }
......
...@@ -1352,6 +1352,7 @@ class LLoadKeyed: public LTemplateInstruction<1, 2, 0> { ...@@ -1352,6 +1352,7 @@ class LLoadKeyed: public LTemplateInstruction<1, 2, 0> {
DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed")
DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) DECLARE_HYDROGEN_ACCESSOR(LoadKeyed)
virtual void PrintDataTo(StringStream* stream);
uint32_t additional_index() const { return hydrogen()->index_offset(); } uint32_t additional_index() const { return hydrogen()->index_offset(); }
}; };
......
...@@ -395,11 +395,27 @@ void LStoreNamedGeneric::PrintDataTo(StringStream* stream) { ...@@ -395,11 +395,27 @@ void LStoreNamedGeneric::PrintDataTo(StringStream* stream) {
} }
void LLoadKeyed::PrintDataTo(StringStream* stream) {
elements()->PrintTo(stream);
stream->Add("[");
key()->PrintTo(stream);
if (hydrogen()->IsDehoisted()) {
stream->Add(" + %d]", additional_index());
} else {
stream->Add("]");
}
}
void LStoreKeyed::PrintDataTo(StringStream* stream) { void LStoreKeyed::PrintDataTo(StringStream* stream) {
elements()->PrintTo(stream); elements()->PrintTo(stream);
stream->Add("["); stream->Add("[");
key()->PrintTo(stream); key()->PrintTo(stream);
if (hydrogen()->IsDehoisted()) {
stream->Add(" + %d] <-", additional_index());
} else {
stream->Add("] <- "); stream->Add("] <- ");
}
value()->PrintTo(stream); value()->PrintTo(stream);
} }
......
...@@ -1364,6 +1364,7 @@ class LLoadKeyed: public LTemplateInstruction<1, 2, 0> { ...@@ -1364,6 +1364,7 @@ class LLoadKeyed: public LTemplateInstruction<1, 2, 0> {
} }
LOperand* elements() { return inputs_[0]; } LOperand* elements() { return inputs_[0]; }
LOperand* key() { return inputs_[1]; } LOperand* key() { return inputs_[1]; }
virtual void PrintDataTo(StringStream* stream);
uint32_t additional_index() const { return hydrogen()->index_offset(); } uint32_t additional_index() const { return hydrogen()->index_offset(); }
ElementsKind elements_kind() const { ElementsKind elements_kind() const {
return hydrogen()->elements_kind(); return hydrogen()->elements_kind();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment