Index: src/runtime.h |
diff --git a/src/runtime.h b/src/runtime.h |
index 922f74d6b95412ecc18317eab05b2a8c07be96b8..28dbe3045ca5eaefd0d285091d83e5600c22a834 100644 |
--- a/src/runtime.h |
+++ b/src/runtime.h |
@@ -603,14 +603,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 defines all runtime functions accessed |
+// 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 |
@@ -648,15 +662,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) \ |
@@ -666,7 +671,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) \ |
@@ -727,16 +740,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. |