Update V8 to r4588
We're using WebKit r58033, as used by
http://src.chromium.org/svn/releases/5.0.387.0/DEPS
This requires http://v8.googlecode.com/svn/trunk@4465 but this version has a
crashing bug for ARM. Instead we use http://v8.googlecode.com/svn/trunk@4588,
which is used by http://src.chromium.org/svn/releases/6.0.399.0/DEPS
Note that a trivial bug fix was required in arm/codegen-arm.cc. This is guarded
with ANDROID. See http://code.google.com/p/v8/issues/detail?id=703
Change-Id: I459647a8286c4f8c7405f0c5581ecbf051a6f1e8
diff --git a/src/log.h b/src/log.h
index eb8369c..a1441ac 100644
--- a/src/log.h
+++ b/src/log.h
@@ -87,31 +87,6 @@
#define LOG(Call) ((void) 0)
#endif
-
-class VMState BASE_EMBEDDED {
-#ifdef ENABLE_LOGGING_AND_PROFILING
- public:
- inline VMState(StateTag state);
- inline ~VMState();
-
- StateTag state() { return state_; }
- Address external_callback() { return external_callback_; }
- void set_external_callback(Address external_callback) {
- external_callback_ = external_callback;
- }
-
- private:
- bool disabled_;
- StateTag state_;
- VMState* previous_;
- Address external_callback_;
-#else
- public:
- explicit VMState(StateTag state) {}
-#endif
-};
-
-
#define LOG_EVENTS_AND_TAGS_LIST(V) \
V(CODE_CREATION_EVENT, "code-creation", "cc") \
V(CODE_MOVE_EVENT, "code-move", "cm") \
@@ -141,7 +116,13 @@
V(REG_EXP_TAG, "RegExp", "re") \
V(SCRIPT_TAG, "Script", "sc") \
V(STORE_IC_TAG, "StoreIC", "sic") \
- V(STUB_TAG, "Stub", "s")
+ V(STUB_TAG, "Stub", "s") \
+ V(NATIVE_FUNCTION_TAG, "Function", "f") \
+ V(NATIVE_LAZY_COMPILE_TAG, "LazyCompile", "lc") \
+ V(NATIVE_SCRIPT_TAG, "Script", "sc")
+// Note that 'NATIVE_' cases for functions and scripts are mapped onto
+// original tags when writing to the log.
+
class Logger {
public:
@@ -260,12 +241,8 @@
static void LogRuntime(Vector<const char> format, JSArray* args);
#ifdef ENABLE_LOGGING_AND_PROFILING
- static StateTag state() {
- return current_state_ ? current_state_->state() : OTHER;
- }
-
static bool is_logging() {
- return is_logging_;
+ return logging_nesting_ > 0;
}
// Pause/Resume collection of profiling data.
@@ -288,11 +265,14 @@
// Used for logging stubs found in the snapshot.
static void LogCodeObjects();
- private:
+ // Converts tag to a corresponding NATIVE_... if the script is native.
+ INLINE(static LogEventsAndTags ToNativeByScript(LogEventsAndTags, Script*));
// Profiler's sampling interval (in milliseconds).
static const int kSamplingIntervalMs = 1;
+ private:
+
// Size of window used for log records compression.
static const int kCompressionWindowSize = 4;
@@ -330,6 +310,9 @@
// Logs a StringEvent regardless of whether FLAG_log is true.
static void UncheckedStringEvent(const char* name, const char* value);
+ // Logs an IntEvent regardless of whether FLAG_log is true.
+ static void UncheckedIntEvent(const char* name, int value);
+
// Stops logging and profiling in case of insufficient resources.
static void StopLoggingAndProfiling();
@@ -344,12 +327,6 @@
// of samples.
static Profiler* profiler_;
- // A stack of VM states.
- static VMState* current_state_;
-
- // Singleton bottom or default vm state.
- static VMState bottom_state_;
-
// SlidingStateWindow instance keeping a sliding window of the most
// recent VM states.
static SlidingStateWindow* sliding_state_window_;
@@ -372,9 +349,11 @@
friend class LoggerTestHelper;
- static bool is_logging_;
+ static int logging_nesting_;
static int cpu_profiler_nesting_;
static int heap_profiler_nesting_;
+
+ friend class CpuProfiler;
#else
static bool is_logging() { return false; }
#endif
@@ -387,7 +366,7 @@
static void Trace(TickSample* sample);
};
-
} } // namespace v8::internal
+
#endif // V8_LOG_H_