Index: src/full-codegen.h |
diff --git a/src/full-codegen.h b/src/full-codegen.h |
index 69234870d48312f49d7385695eead9ab9ed58328..338ed29542a1027f5444fe8704d56cfa72400da3 100644 |
--- a/src/full-codegen.h |
+++ b/src/full-codegen.h |
@@ -291,11 +291,6 @@ class FullCodeGenerator: public AstVisitor { |
} |
}; |
- // Type of a member function that generates inline code for a native function. |
- typedef void (FullCodeGenerator::*InlineFunctionGenerator)(CallRuntime* expr); |
- |
- static const InlineFunctionGenerator kInlineFunctionGenerators[]; |
- |
// A platform-specific utility to overwrite the accumulator register |
// with a GC-safe value. |
void ClearAccumulator(); |
@@ -495,16 +490,52 @@ class FullCodeGenerator: public AstVisitor { |
void EmitKeyedCallWithLoadIC(Call* expr, Expression* key); |
void EmitKeyedSuperCallWithLoadIC(Call* expr); |
- // Platform-specific code for inline runtime calls. |
- InlineFunctionGenerator FindInlineFunctionGenerator(CallRuntime* expr); |
- |
- void EmitInlineRuntimeCall(CallRuntime* expr, |
- InlineFunctionGenerator generator); |
- |
-#define EMIT_INLINE_RUNTIME_CALL(name, x, y) \ |
- void Emit##name(CallRuntime* expr); |
- INLINE_FUNCTION_LIST(EMIT_INLINE_RUNTIME_CALL) |
-#undef EMIT_INLINE_RUNTIME_CALL |
+#define FOR_EACH_FULL_CODE_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) |
+ |
+#define GENERATOR_DECLARATION(Name) void Emit##Name(CallRuntime* call); |
+ FOR_EACH_FULL_CODE_INTRINSIC(GENERATOR_DECLARATION) |
+#undef GENERATOR_DECLARATION |
// Platform-specific code for resuming generators. |
void EmitGeneratorResume(Expression *generator, |