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. |