Index: src/interpreter/bytecode-array-builder.cc |
diff --git a/src/interpreter/bytecode-array-builder.cc b/src/interpreter/bytecode-array-builder.cc |
index 2bd1318ba1b7b044d00fea60c6935de56378bb76..8cc0772db97d4b0a98180c57d5c0ffa28d8cc726 100644 |
--- a/src/interpreter/bytecode-array-builder.cc |
+++ b/src/interpreter/bytecode-array-builder.cc |
@@ -39,8 +39,8 @@ Handle<BytecodeArray> BytecodeArrayBuilder::ToBytecodeArray() { |
BytecodeArrayBuilder& BytecodeArrayBuilder::BinaryOperation(Token::Value binop, |
- int reg) { |
- Output(BytecodeForBinaryOperation(binop), reg); |
+ Register reg) { |
+ Output(BytecodeForBinaryOperation(binop), reg.ToOperand()); |
return *this; |
} |
@@ -91,15 +91,15 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::LoadFalse() { |
BytecodeArrayBuilder& BytecodeArrayBuilder::LoadAccumulatorWithRegister( |
- int reg) { |
- Output(Bytecode::kLdar, reg); |
+ Register reg) { |
+ Output(Bytecode::kLdar, reg.ToOperand()); |
return *this; |
} |
BytecodeArrayBuilder& BytecodeArrayBuilder::StoreAccumulatorInRegister( |
- int reg) { |
- Output(Bytecode::kStar, reg); |
+ Register reg) { |
+ Output(Bytecode::kStar, reg.ToOperand()); |
return *this; |
} |
@@ -112,18 +112,18 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::Return() { |
int BytecodeArrayBuilder::BorrowTemporaryRegister() { |
DCHECK_GE(local_register_count_, 0); |
- int temporary_register = temporary_register_next_++; |
+ int temporary_reg_index = temporary_register_next_++; |
int count = temporary_register_next_ - local_register_count_; |
if (count > temporary_register_count_) { |
temporary_register_count_ = count; |
} |
- return temporary_register; |
+ return temporary_reg_index; |
} |
-void BytecodeArrayBuilder::ReturnTemporaryRegister(int reg) { |
- DCHECK_EQ(reg, temporary_register_next_ - 1); |
- temporary_register_next_ = reg; |
+void BytecodeArrayBuilder::ReturnTemporaryRegister(int reg_index) { |
+ DCHECK_EQ(reg_index, temporary_register_next_ - 1); |
+ temporary_register_next_ = reg_index; |
} |
@@ -136,7 +136,8 @@ bool BytecodeArrayBuilder::OperandIsValid(Bytecode bytecode, int operand_index, |
case OperandType::kImm8: |
return true; |
case OperandType::kReg: |
- return operand_value < temporary_register_next_; |
+ return Register::FromOperand(operand_value).index() < |
+ temporary_register_next_; |
} |
UNREACHABLE(); |
return false; |
@@ -200,20 +201,20 @@ Bytecode BytecodeArrayBuilder::BytecodeForBinaryOperation(Token::Value op) { |
TemporaryRegisterScope::TemporaryRegisterScope(BytecodeArrayBuilder* builder) |
- : builder_(builder), count_(0), register_(-1) {} |
+ : builder_(builder), count_(0), last_register_index_(-1) {} |
TemporaryRegisterScope::~TemporaryRegisterScope() { |
while (count_-- != 0) { |
- builder_->ReturnTemporaryRegister(register_--); |
+ builder_->ReturnTemporaryRegister(last_register_index_--); |
} |
} |
-int TemporaryRegisterScope::NewRegister() { |
+Register TemporaryRegisterScope::NewRegister() { |
count_++; |
- register_ = builder_->BorrowTemporaryRegister(); |
- return register_; |
+ last_register_index_ = builder_->BorrowTemporaryRegister(); |
+ return Register(last_register_index_); |
} |
} // namespace interpreter |