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

Reply via email to