Revision: 9413
Author: [email protected]
Date: Fri Sep 23 04:51:05 2011
Log: Improved printing of a few Hydrogen instructions.
Review URL: http://codereview.chromium.org/8002021
http://code.google.com/p/v8/source/detail?r=9413
Modified:
/branches/bleeding_edge/src/hydrogen-instructions.cc
/branches/bleeding_edge/src/hydrogen-instructions.h
=======================================
--- /branches/bleeding_edge/src/hydrogen-instructions.cc Thu Sep 22
04:30:04 2011
+++ /branches/bleeding_edge/src/hydrogen-instructions.cc Fri Sep 23
04:51:05 2011
@@ -705,6 +705,14 @@
value()->PrintNameTo(stream);
HControlInstruction::PrintDataTo(stream);
}
+
+
+void HIsNilAndBranch::PrintDataTo(StringStream* stream) {
+ value()->PrintNameTo(stream);
+ stream->Add(kind() == kStrictEquality ? " === " : " == ");
+ stream->Add(nil() == kNullValue ? "null" : "undefined");
+ HControlInstruction::PrintDataTo(stream);
+}
void HReturn::PrintDataTo(StringStream* stream) {
@@ -777,6 +785,12 @@
value()->PrintNameTo(stream);
stream->Add(" == ");
stream->Add(type_literal_->GetFlatContent().ToAsciiVector());
+ HControlInstruction::PrintDataTo(stream);
+}
+
+
+void HTypeof::PrintDataTo(StringStream* stream) {
+ value()->PrintNameTo(stream);
}
@@ -855,6 +869,23 @@
value()->PrintNameTo(stream);
stream->Add(" %p", *target());
}
+
+
+const char* HCheckInstanceType::GetCheckName() {
+ switch (check_) {
+ case IS_SPEC_OBJECT: return "object";
+ case IS_JS_ARRAY: return "array";
+ case IS_STRING: return "string";
+ case IS_SYMBOL: return "symbol";
+ }
+ UNREACHABLE();
+ return "";
+}
+
+void HCheckInstanceType::PrintDataTo(StringStream* stream) {
+ stream->Add("%s ", GetCheckName());
+ HUnaryOperation::PrintDataTo(stream);
+}
void HCallStub::PrintDataTo(StringStream* stream) {
@@ -1309,6 +1340,14 @@
right()->PrintNameTo(stream);
HControlInstruction::PrintDataTo(stream);
}
+
+
+void HCompareObjectEqAndBranch::PrintDataTo(StringStream* stream) {
+ left()->PrintNameTo(stream);
+ stream->Add(" ");
+ right()->PrintNameTo(stream);
+ HControlInstruction::PrintDataTo(stream);
+}
void HGoto::PrintDataTo(StringStream* stream) {
=======================================
--- /branches/bleeding_edge/src/hydrogen-instructions.h Mon Sep 19 11:36:47
2011
+++ /branches/bleeding_edge/src/hydrogen-instructions.h Fri Sep 23 04:51:05
2011
@@ -1977,6 +1977,8 @@
static HCheckInstanceType* NewIsSymbol(HValue* value) {
return new HCheckInstanceType(value, IS_SYMBOL);
}
+
+ virtual void PrintDataTo(StringStream* stream);
virtual Representation RequiredInputRepresentation(int index) const {
return Representation::Tagged();
@@ -2008,6 +2010,8 @@
LAST_INTERVAL_CHECK = IS_JS_ARRAY
};
+ const char* GetCheckName();
+
HCheckInstanceType(HValue* value, Check check)
: HUnaryOperation(value), check_(check) {
set_representation(Representation::Tagged());
@@ -2622,6 +2626,8 @@
HValue* left() { return OperandAt(0); }
HValue* right() { return OperandAt(1); }
+
+ virtual void PrintDataTo(StringStream* stream);
virtual Representation RequiredInputRepresentation(int index) const {
return Representation::Tagged();
@@ -2661,6 +2667,8 @@
EqualityKind kind() const { return kind_; }
NilValue nil() const { return nil_; }
+
+ virtual void PrintDataTo(StringStream* stream);
virtual Representation RequiredInputRepresentation(int index) const {
return Representation::Tagged();
@@ -4128,6 +4136,8 @@
HValue* context() { return OperandAt(0); }
HValue* value() { return OperandAt(1); }
+
+ virtual void PrintDataTo(StringStream* stream);
virtual Representation RequiredInputRepresentation(int index) const {
return Representation::Tagged();
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev