Index: src/interpreter/bytecode-register-optimizer.h |
diff --git a/src/interpreter/bytecode-register-optimizer.h b/src/interpreter/bytecode-register-optimizer.h |
index e6a439680189eb52c2d60a22b3383c80a4b473be..fb087b527a84b1ed337aaaf532a6ca1e45b4e560 100644 |
--- a/src/interpreter/bytecode-register-optimizer.h |
+++ b/src/interpreter/bytecode-register-optimizer.h |
@@ -31,7 +31,7 @@ |
void BindLabel(BytecodeLabel* label) override; |
void BindLabel(const BytecodeLabel& target, BytecodeLabel* label) override; |
Handle<BytecodeArray> ToBytecodeArray( |
- Isolate* isolate, int register_count, int parameter_count, |
+ Isolate* isolate, int fixed_register_count, int parameter_count, |
Handle<FixedArray> handler_table) override; |
private: |
@@ -44,25 +44,29 @@ |
// Helpers for BytecodePipelineStage interface. |
void FlushState(); |
+ void WriteToNextStage(BytecodeNode* node) const; |
+ void WriteToNextStage(BytecodeNode* node, |
+ const BytecodeSourceInfo& output_info) const; |
// Update internal state for register transfer from |input| to |
// |output| using |source_info| as source position information if |
// any bytecodes are emitted due to transfer. |
void RegisterTransfer(RegisterInfo* input, RegisterInfo* output, |
- BytecodeSourceInfo* source_info); |
+ const BytecodeSourceInfo& source_info); |
// Emit a register transfer bytecode from |input| to |output|. |
- void OutputRegisterTransfer(RegisterInfo* input, RegisterInfo* output, |
- BytecodeSourceInfo* source_info = nullptr); |
+ void OutputRegisterTransfer( |
+ RegisterInfo* input, RegisterInfo* output, |
+ const BytecodeSourceInfo& source_info = BytecodeSourceInfo()); |
// Emits a Nop to preserve source position information in the |
// bytecode pipeline. |
- void EmitNopForSourceInfo(BytecodeSourceInfo* source_info) const; |
+ void EmitNopForSourceInfo(const BytecodeSourceInfo& source_info) const; |
// Handlers for bytecode nodes for register to register transfers. |
- void DoLdar(BytecodeNode* node); |
- void DoMov(BytecodeNode* node); |
- void DoStar(BytecodeNode* node); |
+ void DoLdar(const BytecodeNode* const node); |
+ void DoMov(const BytecodeNode* const node); |
+ void DoStar(const BytecodeNode* const node); |
// Operand processing methods for bytecodes other than those |
// performing register to register transfers. |
@@ -129,7 +133,6 @@ |
const Register accumulator_; |
RegisterInfo* accumulator_info_; |
const Register temporary_base_; |
- int max_register_index_; |
// Direct mapping to register info. |
ZoneVector<RegisterInfo*> register_info_table_; |