Chromium Code Reviews| Index: src/interpreter/bytecode-array-iterator.cc |
| diff --git a/src/interpreter/bytecode-array-iterator.cc b/src/interpreter/bytecode-array-iterator.cc |
| index a17efcb6ca4b5a36c240e32474fe0ef92834e96a..ec5e26b871c765f72afaf54d449103312711b946 100644 |
| --- a/src/interpreter/bytecode-array-iterator.cc |
| +++ b/src/interpreter/bytecode-array-iterator.cc |
| @@ -131,23 +131,14 @@ int BytecodeArrayIterator::GetRegisterOperandRange(int operand_index) const { |
| interpreter::OperandType operand_type = |
| Bytecodes::GetOperandType(current_bytecode(), operand_index); |
| DCHECK(Bytecodes::IsRegisterOperandType(operand_type)); |
| - switch (operand_type) { |
| - case OperandType::kRegPair: |
| - case OperandType::kRegOutPair: |
| - return 2; |
| - case OperandType::kRegOutTriple: |
| - return 3; |
| - default: { |
| - if (operand_index + 1 != |
| - Bytecodes::NumberOfOperands(current_bytecode())) { |
| - OperandType next_operand_type = |
| - Bytecodes::GetOperandType(current_bytecode(), operand_index + 1); |
| - if (OperandType::kRegCount == next_operand_type) { |
| - return GetRegisterCountOperand(operand_index + 1); |
| - } |
| - } |
| - return 1; |
| - } |
| + int count = Bytecodes::GetNumberOfRegistersRepresentedBy(operand_type); |
| + if (count == 1 && |
|
rmcilroy
2016/05/10 11:14:09
nit - how about:
if (++operand_index < Bytecodes:
oth
2016/05/11 13:17:30
Updated to use GetOperandTypes instead.
|
| + ++operand_index < Bytecodes::NumberOfOperands(current_bytecode()) && |
| + Bytecodes::GetOperandType(current_bytecode(), operand_index) == |
| + OperandType::kRegCount) { |
| + return GetRegisterCountOperand(operand_index); |
| + } else { |
| + return count; |
| } |
| } |