Chromium Code Reviews| Index: src/runtime.h |
| diff --git a/src/runtime.h b/src/runtime.h |
| index 18509bdc5cd723fd735e330f1ae46a442744c67d..fa4f1ff70834c7e496990ef049359dba14001115 100644 |
| --- a/src/runtime.h |
| +++ b/src/runtime.h |
| @@ -593,14 +593,28 @@ namespace internal { |
| // RUNTIME_FUNCTION_LIST defines all runtime functions accessed |
| // either directly by id (via the code generator), or indirectly |
| // via a native call by name (from within JS code). |
| +// Entries have the form F(name, number of arguments, number of return values). |
| #define RUNTIME_FUNCTION_LIST(F) \ |
| RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \ |
| RUNTIME_FUNCTION_LIST_ALWAYS_2(F) \ |
| RUNTIME_FUNCTION_LIST_DEBUG(F) \ |
| RUNTIME_FUNCTION_LIST_DEBUGGER_SUPPORT(F) \ |
| - RUNTIME_FUNCTION_LIST_I18N_SUPPORT(F) \ |
| - INLINE_RUNTIME_FUNCTION_LIST(F) |
| + RUNTIME_FUNCTION_LIST_I18N_SUPPORT(F) |
| + |
| +// RUNTIME_HIDDEN_FUNCTION_LIST defined all runtime functions accessed |
|
Yang
2014/03/25 13:19:59
s/defined/defines/
|
| +// by id from code generator, but not via native call by name. |
| +// Entries have the form F(name, number of arguments, number of return values). |
| +#define RUNTIME_HIDDEN_FUNCTION_LIST(F) \ |
| + F(NumberToString, 1, 1) \ |
| + F(RegExpConstructResult, 3, 1) \ |
| + F(RegExpExec, 4, 1) \ |
| + F(StringAdd, 2, 1) \ |
| + F(SubString, 3, 1) \ |
| + F(StringCompare, 2, 1) \ |
| + F(StringCharCodeAt, 2, 1) \ |
| + F(Log, 3, 1) \ |
| + F(GetFromCache, 2, 1) |
| // ---------------------------------------------------------------------------- |
| // INLINE_FUNCTION_LIST defines all inlined functions accessed |
| @@ -638,15 +652,6 @@ namespace internal { |
| F(GeneratorNext, 2, 1) \ |
| F(GeneratorThrow, 2, 1) \ |
| F(DebugBreakInOptimizedCode, 0, 1) \ |
| - INLINE_RUNTIME_FUNCTION_LIST(F) |
| - |
| - |
| -// ---------------------------------------------------------------------------- |
| -// INLINE_RUNTIME_FUNCTION_LIST defines all inlined functions accessed |
| -// with a native call of the form %_name from within JS code that also have |
| -// a corresponding runtime function, that is called for slow cases. |
| -// Entries have the form F(name, number of arguments, number of return values). |
| -#define INLINE_RUNTIME_FUNCTION_LIST(F) \ |
| F(ClassOf, 1, 1) \ |
| F(StringCharCodeAt, 2, 1) \ |
| F(Log, 3, 1) \ |
| @@ -656,7 +661,15 @@ namespace internal { |
| F(RegExpExec, 4, 1) \ |
| F(RegExpConstructResult, 3, 1) \ |
| F(GetFromCache, 2, 1) \ |
| - F(NumberToString, 1, 1) \ |
| + F(NumberToString, 1, 1) |
| + |
| + |
| +// ---------------------------------------------------------------------------- |
| +// INLINE_OPTIMIZED_FUNCTION_LIST defines all inlined functions accessed |
| +// with a native call of the form %_name from within JS code that also have |
| +// a corresponding runtime function, that is called from non-optimized code. |
| +// Entries have the form F(name, number of arguments, number of return values). |
| +#define INLINE_OPTIMIZED_FUNCTION_LIST(F) \ |
| F(DoubleHi, 1, 1) \ |
| F(DoubleLo, 1, 1) \ |
| F(ConstructDouble, 2, 1) \ |
| @@ -716,16 +729,24 @@ class Runtime : public AllStatic { |
| #define F(name, nargs, ressize) k##name, |
| RUNTIME_FUNCTION_LIST(F) |
| #undef F |
| +#define F(name, nargs, ressize) kHidden##name, |
| + RUNTIME_HIDDEN_FUNCTION_LIST(F) |
| +#undef F |
| #define F(name, nargs, ressize) kInline##name, |
| INLINE_FUNCTION_LIST(F) |
| #undef F |
| +#define F(name, nargs, ressize) kInlineOptimized##name, |
| + INLINE_OPTIMIZED_FUNCTION_LIST(F) |
| +#undef F |
| kNumFunctions, |
| kFirstInlineFunction = kInlineIsSmi |
| }; |
| enum IntrinsicType { |
| RUNTIME, |
| - INLINE |
| + RUNTIME_HIDDEN, |
| + INLINE, |
| + INLINE_OPTIMIZED |
| }; |
| // Intrinsic function descriptor. |