Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(403)

Side by Side Diff: src/compiler/code-generator.h

Issue 1259203002: [turbofan] Implement tail calls with differing stack parameter counts (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix bugs in frameless tail calls Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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 #ifndef V8_COMPILER_CODE_GENERATOR_H_ 5 #ifndef V8_COMPILER_CODE_GENERATOR_H_
6 #define V8_COMPILER_CODE_GENERATOR_H_ 6 #define V8_COMPILER_CODE_GENERATOR_H_
7 7
8 #include "src/compiler/gap-resolver.h" 8 #include "src/compiler/gap-resolver.h"
9 #include "src/compiler/instruction.h" 9 #include "src/compiler/instruction.h"
10 #include "src/deoptimizer.h" 10 #include "src/deoptimizer.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 void AssembleDeoptimizerCall(int deoptimization_id, 86 void AssembleDeoptimizerCall(int deoptimization_id,
87 Deoptimizer::BailoutType bailout_type); 87 Deoptimizer::BailoutType bailout_type);
88 88
89 // Generates an architecture-specific, descriptor-specific prologue 89 // Generates an architecture-specific, descriptor-specific prologue
90 // to set up a stack frame. 90 // to set up a stack frame.
91 void AssemblePrologue(); 91 void AssemblePrologue();
92 // Generates an architecture-specific, descriptor-specific return sequence 92 // Generates an architecture-specific, descriptor-specific return sequence
93 // to tear down a stack frame. 93 // to tear down a stack frame.
94 void AssembleReturn(); 94 void AssembleReturn();
95 95
96 // Generates code to deconstruct a the caller's frame, including arguments. 96 // Generates code to deconstruct a the caller's frame and prepare for a tail
97 void AssembleDeconstructActivationRecord(); 97 // call, including swizzling parameters passed through to the tail call.
98 void AssembleTailCallSetup(Instruction* instr);
98 99
99 // =========================================================================== 100 // ===========================================================================
100 // ============== Architecture-specific gap resolver methods. ================ 101 // ============== Architecture-specific gap resolver methods. ================
101 // =========================================================================== 102 // ===========================================================================
102 103
103 // Interface used by the gap resolver to emit moves and swaps. 104 // Interface used by the gap resolver to emit moves and swaps.
104 void AssembleMove(InstructionOperand* source, 105 void AssembleMove(InstructionOperand* source,
105 InstructionOperand* destination) final; 106 InstructionOperand* destination) final;
106 void AssembleSwap(InstructionOperand* source, 107 void AssembleSwap(InstructionOperand* source,
107 InstructionOperand* destination) final; 108 InstructionOperand* destination) final;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 SafepointTableBuilder safepoints_; 181 SafepointTableBuilder safepoints_;
181 ZoneVector<HandlerInfo> handlers_; 182 ZoneVector<HandlerInfo> handlers_;
182 ZoneDeque<DeoptimizationState*> deoptimization_states_; 183 ZoneDeque<DeoptimizationState*> deoptimization_states_;
183 ZoneDeque<Handle<Object>> deoptimization_literals_; 184 ZoneDeque<Handle<Object>> deoptimization_literals_;
184 size_t inlined_function_count_; 185 size_t inlined_function_count_;
185 TranslationBuffer translations_; 186 TranslationBuffer translations_;
186 int last_lazy_deopt_pc_; 187 int last_lazy_deopt_pc_;
187 JumpTable* jump_tables_; 188 JumpTable* jump_tables_;
188 OutOfLineCode* ools_; 189 OutOfLineCode* ools_;
189 int osr_pc_offset_; 190 int osr_pc_offset_;
190 bool needs_frame_;
191 }; 191 };
192 192
193 } // namespace compiler 193 } // namespace compiler
194 } // namespace internal 194 } // namespace internal
195 } // namespace v8 195 } // namespace v8
196 196
197 #endif // V8_COMPILER_CODE_GENERATOR_H 197 #endif // V8_COMPILER_CODE_GENERATOR_H
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698