Index: src/compiler/code-generator.h |
diff --git a/src/compiler/code-generator.h b/src/compiler/code-generator.h |
index 59a5af9a0703597ebe51c09bb72c030caecd34f6..c54e250d2ed53dac9e0748d5bdb4434661accaca 100644 |
--- a/src/compiler/code-generator.h |
+++ b/src/compiler/code-generator.h |
@@ -28,6 +28,20 @@ struct BranchInfo { |
}; |
+class InstructionOperandIterator { |
+ public: |
+ InstructionOperandIterator(Instruction* instr, size_t pos) |
+ : instr_(instr), pos_(pos) {} |
+ |
+ Instruction* instruction() const { return instr_; } |
+ InstructionOperand* Advance() { return instr_->InputAt(pos_++); } |
+ |
+ private: |
+ Instruction* instr_; |
+ size_t pos_; |
+}; |
+ |
+ |
// Generates native code for a sequence of instructions. |
class CodeGenerator final : public GapResolver::Assembler { |
public: |
@@ -136,9 +150,15 @@ class CodeGenerator final : public GapResolver::Assembler { |
size_t frame_access_state_offset, |
OutputFrameStateCombine state_combine); |
void BuildTranslationForFrameStateDescriptor( |
- FrameStateDescriptor* descriptor, Instruction* instr, |
- Translation* translation, size_t frame_access_state_offset, |
- OutputFrameStateCombine state_combine); |
+ FrameStateDescriptor* descriptor, InstructionOperandIterator* iter, |
+ Translation* translation, OutputFrameStateCombine state_combine); |
+ void TranslateStateValueDescriptor(StateValueDescriptor* desc, |
+ Translation* translation, |
+ InstructionOperandIterator* iter); |
+ void TranslateFrameStateDescriptorOperands(FrameStateDescriptor* desc, |
+ InstructionOperandIterator* iter, |
+ OutputFrameStateCombine combine, |
+ Translation* translation); |
void AddTranslationForOperand(Translation* translation, Instruction* instr, |
InstructionOperand* op, MachineType type); |
void AddNopForSmiCodeInlining(); |