Index: src/interpreter/bytecode-array-builder.cc |
diff --git a/src/interpreter/bytecode-array-builder.cc b/src/interpreter/bytecode-array-builder.cc |
index 1b15fc666866589257a593c0a232cbc1c3437900..8017aa8d5cc919a596e7b473db22bed25ef079a6 100644 |
--- a/src/interpreter/bytecode-array-builder.cc |
+++ b/src/interpreter/bytecode-array-builder.cc |
@@ -981,9 +981,8 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::Return() { |
BytecodeArrayBuilder& BytecodeArrayBuilder::ForInPrepare( |
- Register cache_type, Register cache_array, Register cache_length) { |
- Output(Bytecode::kForInPrepare, cache_type.ToOperand(), |
- cache_array.ToOperand(), cache_length.ToOperand()); |
+ Register cache_info_triple) { |
+ Output(Bytecode::kForInPrepare, cache_info_triple.ToOperand()); |
return *this; |
} |
@@ -995,12 +994,10 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::ForInDone(Register index, |
} |
-BytecodeArrayBuilder& BytecodeArrayBuilder::ForInNext(Register receiver, |
- Register cache_type, |
- Register cache_array, |
- Register index) { |
- Output(Bytecode::kForInNext, receiver.ToOperand(), cache_type.ToOperand(), |
- cache_array.ToOperand(), index.ToOperand()); |
+BytecodeArrayBuilder& BytecodeArrayBuilder::ForInNext( |
+ Register receiver, Register index, Register cache_type_array_pair) { |
+ Output(Bytecode::kForInNext, receiver.ToOperand(), index.ToOperand(), |
+ cache_type_array_pair.ToOperand()); |
return *this; |
} |
@@ -1256,6 +1253,14 @@ bool BytecodeArrayBuilder::OperandIsValid(Bytecode bytecode, int operand_index, |
Register reg1 = Register(reg0.index() + 1); |
return RegisterIsValid(reg0) && RegisterIsValid(reg1); |
} |
+ case OperandType::kRegTriple8: { |
+ Register reg0 = |
+ Register::FromOperand(static_cast<uint8_t>(operand_value)); |
+ Register reg1 = Register(reg0.index() + 1); |
+ Register reg2 = Register(reg0.index() + 2); |
+ return RegisterIsValid(reg0) && RegisterIsValid(reg1) && |
+ RegisterIsValid(reg2); |
+ } |
case OperandType::kReg16: |
if (bytecode != Bytecode::kExchange && |
bytecode != Bytecode::kExchangeWide) { |