| Index: src/arguments.h
|
| diff --git a/src/arguments.h b/src/arguments.h
|
| index 02090f9fe363d789ea023576a4f890caa927f47d..673a6d1abccbdd10a6db4f152a3e6f0137d4329f 100644
|
| --- a/src/arguments.h
|
| +++ b/src/arguments.h
|
| @@ -79,22 +79,30 @@ double ClobberDoubleRegisters(double x1, double x2, double x3, double x4);
|
| #define CLOBBER_DOUBLE_REGISTERS()
|
| #endif
|
|
|
| -#define RUNTIME_FUNCTION_RETURNS_TYPE(Type, Name) \
|
| - static INLINE(Type __RT_impl_##Name(Arguments args, Isolate* isolate)); \
|
| - Type Name(int args_length, Object** args_object, Isolate* isolate) { \
|
| - CLOBBER_DOUBLE_REGISTERS(); \
|
| - Type value; \
|
| - TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.runtime"), "V8." #Name); \
|
| - Arguments args(args_length, args_object); \
|
| - if (FLAG_runtime_call_stats) { \
|
| - RuntimeCallStats* stats = isolate->counters()->runtime_call_stats(); \
|
| - RuntimeCallTimerScope timer(isolate, &stats->Name); \
|
| - value = __RT_impl_##Name(args, isolate); \
|
| - } else { \
|
| - value = __RT_impl_##Name(args, isolate); \
|
| - } \
|
| - return value; \
|
| - } \
|
| +// TODO(cbruni): add global flag to check whether any tracing events have been
|
| +// enabled.
|
| +#define RUNTIME_FUNCTION_RETURNS_TYPE(Type, Name) \
|
| + static INLINE(Type __RT_impl_##Name(Arguments args, Isolate* isolate)); \
|
| + \
|
| + V8_NOINLINE static Type Stats_##Name(int args_length, Object** args_object, \
|
| + Isolate* isolate) { \
|
| + RuntimeCallStats* stats = isolate->counters()->runtime_call_stats(); \
|
| + RuntimeCallTimerScope timer(isolate, &stats->Name); \
|
| + TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.runtime"), \
|
| + "V8.Runtime_" #Name); \
|
| + Arguments args(args_length, args_object); \
|
| + return __RT_impl_##Name(args, isolate); \
|
| + } \
|
| + \
|
| + Type Name(int args_length, Object** args_object, Isolate* isolate) { \
|
| + CLOBBER_DOUBLE_REGISTERS(); \
|
| + if (FLAG_runtime_call_stats) { \
|
| + return Stats_##Name(args_length, args_object, isolate); \
|
| + } \
|
| + Arguments args(args_length, args_object); \
|
| + return __RT_impl_##Name(args, isolate); \
|
| + } \
|
| + \
|
| static Type __RT_impl_##Name(Arguments args, Isolate* isolate)
|
|
|
| #define RUNTIME_FUNCTION(Name) RUNTIME_FUNCTION_RETURNS_TYPE(Object*, Name)
|
|
|