5 #ifndef V8_COMPILER_CODE_GENERATOR_H_
6 #define V8_COMPILER_CODE_GENERATOR_H_
21 class CodeGenerator
FINAL :
public GapResolver::Assembler {
38 SafepointTableBuilder*
safepoints() {
return &safepoints_; }
44 return block->rpo_number_ == (current_block_->rpo_number_ + 1) &&
45 block->deferred_ == current_block_->deferred_;
50 int arguments, Safepoint::DeoptMode deopt_mode);
90 size_t frame_state_offset);
92 size_t frame_state_offset,
96 Translation* translation,
size_t frame_state_offset,
112 : bailout_id_(bailout_id),
113 translation_id_(translation_id),
114 pc_offset_(pc_offset) {}
SafepointTableBuilder * safepoints()
void AddTranslationForOperand(Translation *translation, Instruction *instr, InstructionOperand *op)
InstructionSequence * code() const
Schedule * schedule() const
void PopulateDeoptimizationData(Handle< Code > code)
Isolate * isolate() const
SourcePosition current_source_position_
void AssembleArchBranch(Instruction *instr, FlagsCondition condition)
ZoneDeque< DeoptimizationState * > deoptimization_states_
FrameStateDescriptor * GetFrameStateDescriptor(Instruction *instr, size_t frame_state_offset)
void AssembleArchBoolean(Instruction *instr, FlagsCondition condition)
void AssembleDeoptimizerCall(int deoptimization_id)
void RecordSafepoint(PointerMap *pointers, Safepoint::Kind kind, int arguments, Safepoint::DeoptMode deopt_mode)
void AddNopForSmiCodeInlining()
void AssembleGap(GapInstruction *gap)
bool IsNextInAssemblyOrder(const BasicBlock *block) const
TranslationBuffer translations_
void AssembleArchInstruction(Instruction *instr)
InstructionSequence * code_
virtual void AssembleMove(InstructionOperand *source, InstructionOperand *destination) OVERRIDE
void AddSafepointAndDeopt(Instruction *instr)
int BuildTranslation(Instruction *instr, int pc_offset, size_t frame_state_offset, OutputFrameStateCombine state_combine)
Linkage * linkage() const
CodeGenerator(InstructionSequence *code)
virtual void AssembleSwap(InstructionOperand *source, InstructionOperand *destination) OVERRIDE
void EnsureSpaceForLazyDeopt()
void AssembleSourcePosition(SourcePositionInstruction *instr)
ZoneDeque< Handle< Object > > deoptimization_literals_
void AssembleInstruction(Instruction *instr)
Handle< Code > GenerateCode()
SafepointTableBuilder safepoints_
int DefineDeoptimizationLiteral(Handle< Object > literal)
BasicBlock * current_block_
void BuildTranslationForFrameStateDescriptor(FrameStateDescriptor *descriptor, Instruction *instr, Translation *translation, size_t frame_state_offset, OutputFrameStateCombine state_combine)
Debugger support for the V8 JavaScript engine.
DeoptimizationState(BailoutId bailout_id, int translation_id, int pc_offset)
int translation_id() const
BailoutId bailout_id() const