| Index: src/compiler/code-generator.h
|
| diff --git a/src/compiler/code-generator.h b/src/compiler/code-generator.h
|
| index 387ff80401f2da5be3671eacb91beb6b96c50a66..fd5f4b46229233171efad7b1a19976a9240bac5f 100644
|
| --- a/src/compiler/code-generator.h
|
| +++ b/src/compiler/code-generator.h
|
| @@ -5,6 +5,7 @@
|
| #ifndef V8_COMPILER_CODE_GENERATOR_H_
|
| #define V8_COMPILER_CODE_GENERATOR_H_
|
|
|
| +#include "src/compiler/frame-access-state.h"
|
| #include "src/compiler/gap-resolver.h"
|
| #include "src/compiler/instruction.h"
|
| #include "src/deoptimizer.h"
|
| @@ -16,6 +17,7 @@ namespace internal {
|
| namespace compiler {
|
|
|
| // Forward declarations.
|
| +class FrameAccessState;
|
| class Linkage;
|
| class OutOfLineCode;
|
|
|
| @@ -37,7 +39,8 @@ class CodeGenerator final : public GapResolver::Assembler {
|
| Handle<Code> GenerateCode();
|
|
|
| InstructionSequence* code() const { return code_; }
|
| - Frame* frame() const { return frame_; }
|
| + FrameAccessState* frame_access_state() const { return frame_access_state_; }
|
| + Frame* const frame() const { return frame_access_state_->frame(); }
|
| Isolate* isolate() const { return info_->isolate(); }
|
| Linkage* linkage() const { return linkage_; }
|
|
|
| @@ -128,14 +131,14 @@ class CodeGenerator final : public GapResolver::Assembler {
|
| void RecordCallPosition(Instruction* instr);
|
| void PopulateDeoptimizationData(Handle<Code> code);
|
| int DefineDeoptimizationLiteral(Handle<Object> literal);
|
| - FrameStateDescriptor* GetFrameStateDescriptor(Instruction* instr,
|
| - size_t frame_state_offset);
|
| + FrameStateDescriptor* GetFrameStateDescriptor(
|
| + Instruction* instr, size_t frame_access_state_offset);
|
| int BuildTranslation(Instruction* instr, int pc_offset,
|
| - size_t frame_state_offset,
|
| + size_t frame_access_state_offset,
|
| OutputFrameStateCombine state_combine);
|
| void BuildTranslationForFrameStateDescriptor(
|
| FrameStateDescriptor* descriptor, Instruction* instr,
|
| - Translation* translation, size_t frame_state_offset,
|
| + Translation* translation, size_t frame_access_state_offset,
|
| OutputFrameStateCombine state_combine);
|
| void AddTranslationForOperand(Translation* translation, Instruction* instr,
|
| InstructionOperand* op, MachineType type);
|
| @@ -170,7 +173,7 @@ class CodeGenerator final : public GapResolver::Assembler {
|
|
|
| friend class OutOfLineCode;
|
|
|
| - Frame* const frame_;
|
| + FrameAccessState* frame_access_state_;
|
| Linkage* const linkage_;
|
| InstructionSequence* const code_;
|
| CompilationInfo* const info_;
|
| @@ -190,7 +193,6 @@ class CodeGenerator final : public GapResolver::Assembler {
|
| JumpTable* jump_tables_;
|
| OutOfLineCode* ools_;
|
| int osr_pc_offset_;
|
| - bool needs_frame_;
|
| };
|
|
|
| } // namespace compiler
|
|
|