Author: [email protected]
Date: Mon Jun 15 09:33:28 2009
New Revision: 2174

Modified:
    branches/bleeding_edge/src/codegen.cc
    branches/bleeding_edge/src/compiler.cc

Log:
Fix disassembly output from oprofile.

Only send the inscructions part of a code object to oprofile when reporting  
dynamically generated code. Before the code object header was also reported  
to oprofile as code which caused strange disassembly output when using  
opannotate.
Review URL: http://codereview.chromium.org/125126

Modified: branches/bleeding_edge/src/codegen.cc
==============================================================================
--- branches/bleeding_edge/src/codegen.cc       (original)
+++ branches/bleeding_edge/src/codegen.cc       Mon Jun 15 09:33:28 2009
@@ -306,8 +306,8 @@

  #ifdef ENABLE_OPROFILE_AGENT
      OProfileAgent::CreateNativeCodeRegion(*node->name(),
-                                          code->address(),
-                                          code->ExecutableSize());
+                                          code->instruction_start(),
+                                          code->instruction_size());
  #endif
    }


Modified: branches/bleeding_edge/src/compiler.cc
==============================================================================
--- branches/bleeding_edge/src/compiler.cc      (original)
+++ branches/bleeding_edge/src/compiler.cc      Mon Jun 15 09:33:28 2009
@@ -181,13 +181,15 @@
            String::cast(script->name())->ToCString(DISALLOW_NULLS);
        LOG(CodeCreateEvent(is_eval ? Logger::EVAL_TAG : Logger::SCRIPT_TAG,
                            *code, *data));
-      OProfileAgent::CreateNativeCodeRegion(*data, code->address(),
-                                            code->ExecutableSize());
+      OProfileAgent::CreateNativeCodeRegion(*data,
+                                            code->instruction_start(),
+                                            code->instruction_size());
      } else {
        LOG(CodeCreateEvent(is_eval ? Logger::EVAL_TAG : Logger::SCRIPT_TAG,
                            *code, ""));
        OProfileAgent::CreateNativeCodeRegion(is_eval ? "Eval" : "Script",
-          code->address(), code->ExecutableSize());
+                                            code->instruction_start(),
+                                            code->instruction_size());
      }
    }
  #endif
@@ -386,12 +388,14 @@
                            String::cast(script->name()), line_num));
        OProfileAgent::CreateNativeCodeRegion(*func_name,
                                              String::cast(script->name()),
-                                            line_num, code->address(),
-                                            code->ExecutableSize());
+                                            line_num,
+                                            code->instruction_start(),
+                                            code->instruction_size());
      } else {
        LOG(CodeCreateEvent(Logger::LAZY_COMPILE_TAG, *code, *func_name));
-      OProfileAgent::CreateNativeCodeRegion(*func_name, code->address(),
-                                            code->ExecutableSize());
+      OProfileAgent::CreateNativeCodeRegion(*func_name,
+                                            code->instruction_start(),
+                                            code->instruction_size());
      }
    }
  #endif

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

Reply via email to