Index: src/hydrogen.h |
diff --git a/src/hydrogen.h b/src/hydrogen.h |
index 07a5270b321345df9cdbabd04bcd6f05d4299ca0..fe2372855ada4a146a9327803d6ca03f29c9ac19 100644 |
--- a/src/hydrogen.h |
+++ b/src/hydrogen.h |
@@ -2118,17 +2118,9 @@ class HOptimizedGraphBuilder : public HGraphBuilder, public AstVisitor { |
DEFINE_AST_VISITOR_SUBCLASS_MEMBERS(); |
protected: |
- // Type of a member function that generates inline code for a native function. |
- typedef void (HOptimizedGraphBuilder::*InlineFunctionGenerator) |
- (CallRuntime* call); |
- |
- InlineFunctionGenerator FindInlineFunctionGenerator(CallRuntime* expr); |
- |
// Forward declarations for inner scope classes. |
class SubgraphScope; |
- static const InlineFunctionGenerator kInlineFunctionGenerators[]; |
- |
static const int kMaxCallPolymorphism = 4; |
static const int kMaxLoadPolymorphism = 4; |
static const int kMaxStorePolymorphism = 4; |
@@ -2170,13 +2162,86 @@ class HOptimizedGraphBuilder : public HGraphBuilder, public AstVisitor { |
return function_state()->compilation_info()->language_mode(); |
} |
- // Generators for inline runtime functions. |
-#define INLINE_FUNCTION_GENERATOR_DECLARATION(Name, argc, ressize) \ |
- void Generate##Name(CallRuntime* call); |
- |
- INLINE_FUNCTION_LIST(INLINE_FUNCTION_GENERATOR_DECLARATION) |
- INLINE_OPTIMIZED_FUNCTION_LIST(INLINE_FUNCTION_GENERATOR_DECLARATION) |
-#undef INLINE_FUNCTION_GENERATOR_DECLARATION |
+#define FOR_EACH_HYDROGEN_INTRINSIC(F) \ |
+ F(IsSmi) \ |
+ F(IsNonNegativeSmi) \ |
+ F(IsArray) \ |
+ F(IsRegExp) \ |
+ F(IsJSProxy) \ |
+ F(IsConstructCall) \ |
+ F(CallFunction) \ |
+ F(DefaultConstructorCallSuper) \ |
+ F(ArgumentsLength) \ |
+ F(Arguments) \ |
+ F(ValueOf) \ |
+ F(SetValueOf) \ |
+ F(DateField) \ |
+ F(StringCharFromCode) \ |
+ F(StringCharAt) \ |
+ F(OneByteSeqStringSetChar) \ |
+ F(TwoByteSeqStringSetChar) \ |
+ F(ObjectEquals) \ |
+ F(IsObject) \ |
+ F(IsFunction) \ |
+ F(IsUndetectableObject) \ |
+ F(IsSpecObject) \ |
+ F(IsStringWrapperSafeForDefaultValueOf) \ |
+ F(MathPow) \ |
+ F(IsMinusZero) \ |
+ F(HasCachedArrayIndex) \ |
+ F(GetCachedArrayIndex) \ |
+ F(FastOneByteArrayJoin) \ |
+ F(GeneratorNext) \ |
+ F(GeneratorThrow) \ |
+ F(DebugBreakInOptimizedCode) \ |
+ F(ClassOf) \ |
+ F(StringCharCodeAt) \ |
+ F(StringAdd) \ |
+ F(SubString) \ |
+ F(StringCompare) \ |
+ F(RegExpExec) \ |
+ F(RegExpConstructResult) \ |
+ F(GetFromCache) \ |
+ F(NumberToString) \ |
+ F(DebugIsActive) \ |
+ /* Typed Arrays */ \ |
+ F(TypedArrayInitialize) \ |
+ F(DataViewInitialize) \ |
+ F(MaxSmi) \ |
+ F(TypedArrayMaxSizeInHeap) \ |
+ F(ArrayBufferViewGetByteLength) \ |
+ F(ArrayBufferViewGetByteOffset) \ |
+ F(TypedArrayGetLength) \ |
+ /* ArrayBuffer */ \ |
+ F(ArrayBufferGetByteLength) \ |
+ /* Maths */ \ |
+ F(ConstructDouble) \ |
+ F(DoubleHi) \ |
+ F(DoubleLo) \ |
+ F(MathFloor) \ |
+ F(MathSqrtRT) \ |
+ F(MathLogRT) \ |
+ /* ES6 Collections */ \ |
+ F(MapClear) \ |
+ F(MapDelete) \ |
+ F(MapGet) \ |
+ F(MapGetSize) \ |
+ F(MapHas) \ |
+ F(MapInitialize) \ |
+ F(MapSet) \ |
+ F(SetAdd) \ |
+ F(SetClear) \ |
+ F(SetDelete) \ |
+ F(SetGetSize) \ |
+ F(SetHas) \ |
+ F(SetInitialize) \ |
+ /* Arrays */ \ |
+ F(HasFastPackedElements) \ |
+ F(GetPrototype) |
+ |
+#define GENERATOR_DECLARATION(Name) void Generate##Name(CallRuntime* call); |
+ FOR_EACH_HYDROGEN_INTRINSIC(GENERATOR_DECLARATION) |
+#undef GENERATOR_DECLARATION |
void VisitDelete(UnaryOperation* expr); |
void VisitVoid(UnaryOperation* expr); |