| OLD | NEW | 
|     1 // Copyright 2012 the V8 project authors. All rights reserved. |     1 // Copyright 2012 the V8 project authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 #include "src/v8.h" |     5 #include "src/v8.h" | 
|     6  |     6  | 
|     7 #include "src/ast.h" |     7 #include "src/ast.h" | 
|     8 #include "src/ast-numbering.h" |     8 #include "src/ast-numbering.h" | 
|     9 #include "src/code-factory.h" |     9 #include "src/code-factory.h" | 
|    10 #include "src/codegen.h" |    10 #include "src/codegen.h" | 
| (...skipping 877 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   888     &FullCodeGenerator::Emit##Name, |   888     &FullCodeGenerator::Emit##Name, | 
|   889  |   889  | 
|   890 const FullCodeGenerator::InlineFunctionGenerator |   890 const FullCodeGenerator::InlineFunctionGenerator | 
|   891   FullCodeGenerator::kInlineFunctionGenerators[] = { |   891   FullCodeGenerator::kInlineFunctionGenerators[] = { | 
|   892     INLINE_FUNCTION_LIST(INLINE_FUNCTION_GENERATOR_ADDRESS) |   892     INLINE_FUNCTION_LIST(INLINE_FUNCTION_GENERATOR_ADDRESS) | 
|   893   }; |   893   }; | 
|   894 #undef INLINE_FUNCTION_GENERATOR_ADDRESS |   894 #undef INLINE_FUNCTION_GENERATOR_ADDRESS | 
|   895  |   895  | 
|   896  |   896  | 
|   897 FullCodeGenerator::InlineFunctionGenerator |   897 FullCodeGenerator::InlineFunctionGenerator | 
|   898   FullCodeGenerator::FindInlineFunctionGenerator(Runtime::FunctionId id) { |   898 FullCodeGenerator::FindInlineFunctionGenerator(CallRuntime* expr) { | 
|   899     int lookup_index = |   899   const Runtime::Function* function = expr->function(); | 
|   900         static_cast<int>(id) - static_cast<int>(Runtime::kFirstInlineFunction); |   900   if (function == nullptr || function->intrinsic_type != Runtime::INLINE) { | 
|   901     DCHECK(lookup_index >= 0); |   901     return nullptr; | 
|   902     DCHECK(static_cast<size_t>(lookup_index) < |   902   } | 
|   903            arraysize(kInlineFunctionGenerators)); |   903   Runtime::FunctionId id = function->function_id; | 
|   904     return kInlineFunctionGenerators[lookup_index]; |   904   if (id < Runtime::kFirstInlineFunction || Runtime::kLastInlineFunction < id) { | 
 |   905     return nullptr; | 
 |   906   } | 
 |   907   return kInlineFunctionGenerators[static_cast<int>(id) - | 
 |   908                                    static_cast<int>( | 
 |   909                                        Runtime::kFirstInlineFunction)]; | 
|   905 } |   910 } | 
|   906  |   911  | 
|   907  |   912  | 
|   908 void FullCodeGenerator::EmitInlineRuntimeCall(CallRuntime* expr) { |   913 void FullCodeGenerator::EmitInlineRuntimeCall( | 
|   909   const Runtime::Function* function = expr->function(); |   914     CallRuntime* expr, InlineFunctionGenerator generator) { | 
|   910   DCHECK(function != NULL); |  | 
|   911   DCHECK(function->intrinsic_type == Runtime::INLINE); |  | 
|   912   InlineFunctionGenerator generator = |  | 
|   913       FindInlineFunctionGenerator(function->function_id); |  | 
|   914   ((*this).*(generator))(expr); |   915   ((*this).*(generator))(expr); | 
|   915 } |   916 } | 
|   916  |   917  | 
|   917  |   918  | 
|   918 void FullCodeGenerator::EmitGeneratorNext(CallRuntime* expr) { |   919 void FullCodeGenerator::EmitGeneratorNext(CallRuntime* expr) { | 
|   919   ZoneList<Expression*>* args = expr->arguments(); |   920   ZoneList<Expression*>* args = expr->arguments(); | 
|   920   DCHECK(args->length() == 2); |   921   DCHECK(args->length() == 2); | 
|   921   EmitGeneratorResume(args->at(0), args->at(1), JSGeneratorObject::NEXT); |   922   EmitGeneratorResume(args->at(0), args->at(1), JSGeneratorObject::NEXT); | 
|   922 } |   923 } | 
|   923  |   924  | 
| (...skipping 893 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1817   } |  1818   } | 
|  1818   codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); |  1819   codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); | 
|  1819   codegen_->scope_ = saved_scope_; |  1820   codegen_->scope_ = saved_scope_; | 
|  1820 } |  1821 } | 
|  1821  |  1822  | 
|  1822  |  1823  | 
|  1823 #undef __ |  1824 #undef __ | 
|  1824  |  1825  | 
|  1825  |  1826  | 
|  1826 } }  // namespace v8::internal |  1827 } }  // namespace v8::internal | 
| OLD | NEW |