Reviewers: Vyacheslav Egorov,

Description:
Print compare-state with --print-code-stubs.

[email protected]


Please review this at https://chromiumcodereview.appspot.com/10235006/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/code-stubs.cc
  M src/objects.cc


Index: src/code-stubs.cc
diff --git a/src/code-stubs.cc b/src/code-stubs.cc
index 11016c823875e2cc4736a5f5d4c848e0671ec8ef..03604c513aa2193ea2238f49be9209aa2a0e3c2d 100644
--- a/src/code-stubs.cc
+++ b/src/code-stubs.cc
@@ -81,13 +81,6 @@ void CodeStub::RecordCodeGeneration(Code* code, MacroAssembler* masm) {
   GDBJIT(AddCode(GDBJITInterface::STUB, *name, code));
   Counters* counters = isolate->counters();
   counters->total_stubs_code_size()->Increment(code->instruction_size());
-
-#ifdef ENABLE_DISASSEMBLER
-  if (FLAG_print_code_stubs) {
-    code->Disassemble(*name);
-    PrintF("\n");
-  }
-#endif
 }


@@ -128,6 +121,13 @@ Handle<Code> CodeStub::GetCode() {
     RecordCodeGeneration(*new_object, &masm);
     FinishCode(new_object);

+#ifdef ENABLE_DISASSEMBLER
+    if (FLAG_print_code_stubs) {
+      new_object->Disassemble(*GetName());
+      PrintF("\n");
+    }
+#endif
+
     if (UseSpecialCache()) {
       AddToSpecialCache(new_object);
     } else {
Index: src/objects.cc
diff --git a/src/objects.cc b/src/objects.cc
index 41f2ab6d8823f2e85ee1ec636e0016a495273fa6..96b42286e88f03c1772e204d04497c22f38456ab 100644
--- a/src/objects.cc
+++ b/src/objects.cc
@@ -8375,6 +8375,10 @@ void Code::Disassemble(const char* name, FILE* out) {
     if (is_call_stub() || is_keyed_call_stub()) {
       PrintF(out, "argc = %d\n", arguments_count());
     }
+    if (is_compare_ic_stub()) {
+      CompareIC::State state = CompareIC::ComputeState(this);
+      PrintF(out, "compare_state = %s\n", CompareIC::GetStateName(state));
+    }
   }
   if ((name != NULL) && (name[0] != '\0')) {
     PrintF(out, "name = %s\n", name);


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to