diff options
Diffstat (limited to 'deps/v8/src/full-codegen.h')
-rw-r--r-- | deps/v8/src/full-codegen.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/deps/v8/src/full-codegen.h b/deps/v8/src/full-codegen.h index 89b51f9582..2f88184806 100644 --- a/deps/v8/src/full-codegen.h +++ b/deps/v8/src/full-codegen.h @@ -396,9 +396,15 @@ class FullCodeGenerator: public AstVisitor { void VisitInDuplicateContext(Expression* expr); void VisitDeclarations(ZoneList<Declaration*>* declarations); + void DeclareModules(Handle<FixedArray> descriptions); void DeclareGlobals(Handle<FixedArray> pairs); int DeclareGlobalsFlags(); + // Generate code to allocate all (including nested) modules and contexts. + // Because of recursive linking and the presence of module alias declarations, + // this has to be a separate pass _before_ populating or executing any module. + void AllocateModules(ZoneList<Declaration*>* declarations); + // Try to perform a comparison as a fast inlined literal compare if // the operands allow it. Returns true if the compare operations // has been matched and all code generated; false otherwise. @@ -442,14 +448,13 @@ class FullCodeGenerator: public AstVisitor { // neither a with nor a catch context. void EmitDebugCheckDeclarationContext(Variable* variable); - // Platform-specific code for checking the stack limit at the back edge of - // a loop. // This is meant to be called at loop back edges, |back_edge_target| is // the jump target of the back edge and is used to approximate the amount // of code inside the loop. - void EmitStackCheck(IterationStatement* stmt, Label* back_edge_target); - // Record the OSR AST id corresponding to a stack check in the code. - void RecordStackCheck(BailoutId osr_ast_id); + void EmitBackEdgeBookkeeping(IterationStatement* stmt, + Label* back_edge_target); + // Record the OSR AST id corresponding to a back edge in the code. + void RecordBackEdge(BailoutId osr_ast_id); // Emit a table of stack check ids and pcs into the code stream. Return // the offset of the start of the table. unsigned EmitStackCheckTable(); @@ -804,8 +809,12 @@ class FullCodeGenerator: public AstVisitor { NestedStatement* nesting_stack_; int loop_depth_; ZoneList<Handle<Object> >* globals_; + Handle<FixedArray> modules_; + int module_index_; const ExpressionContext* context_; ZoneList<BailoutEntry> bailout_entries_; + // TODO(svenpanne) Rename this to something like back_edges_ and rename + // related functions accordingly. ZoneList<BailoutEntry> stack_checks_; ZoneList<TypeFeedbackCellEntry> type_feedback_cells_; int ic_total_count_; |