Chromium Code Reviews| Index: src/interpreter/bytecode-array-builder.cc |
| diff --git a/src/interpreter/bytecode-array-builder.cc b/src/interpreter/bytecode-array-builder.cc |
| index 56cdfb9d82d9873fba68eb3914601cd4d8c54698..af3542197ed5b5e98334017c75be06cba297e52d 100644 |
| --- a/src/interpreter/bytecode-array-builder.cc |
| +++ b/src/interpreter/bytecode-array-builder.cc |
| @@ -408,7 +408,7 @@ bool BytecodeArrayBuilder::RegisterOperandIsMovable(Bytecode bytecode, |
| // need for a large translation window. |
| OperandType operand_type = Bytecodes::GetOperandType(bytecode, operand_index); |
| if (operand_type != OperandType::kReg8 && |
| - operand_type != OperandType::kReg16) { |
|
rmcilroy
2016/01/26 16:49:51
Purposefully dropping kReg16 from here?
oth
2016/01/26 17:55:53
Yes, moves to the translation window are not neede
|
| + operand_type != OperandType::kRegOut8) { |
| return false; |
| } else if (operand_index + 1 == Bytecodes::NumberOfOperands(bytecode)) { |
| return true; |
| @@ -1413,8 +1413,11 @@ bool BytecodeArrayBuilder::OperandIsValid(Bytecode bytecode, int operand_index, |
| } |
| // Fall-through to kReg8 case. |
| case OperandType::kReg8: |
| + case OperandType::kRegOut8: |
| return RegisterIsValid(Register::FromRawOperand(operand_value), |
| operand_type); |
| + case OperandType::kRegOutPair8: |
| + case OperandType::kRegOutPair16: |
| case OperandType::kRegPair8: |
| case OperandType::kRegPair16: { |
| Register reg0 = Register::FromRawOperand(operand_value); |
| @@ -1422,8 +1425,8 @@ bool BytecodeArrayBuilder::OperandIsValid(Bytecode bytecode, int operand_index, |
| return RegisterIsValid(reg0, operand_type) && |
| RegisterIsValid(reg1, operand_type); |
| } |
| - case OperandType::kRegTriple8: |
| - case OperandType::kRegTriple16: { |
| + case OperandType::kRegOutTriple8: |
| + case OperandType::kRegOutTriple16: { |
| Register reg0 = Register::FromRawOperand(operand_value); |
| Register reg1 = Register(reg0.index() + 1); |
| Register reg2 = Register(reg0.index() + 2); |
| @@ -1436,7 +1439,8 @@ bool BytecodeArrayBuilder::OperandIsValid(Bytecode bytecode, int operand_index, |
| return true; |
| } |
| // Fall-through to kReg16 case. |
| - case OperandType::kReg16: { |
| + case OperandType::kReg16: |
| + case OperandType::kRegOut16: { |
| Register reg = Register::FromRawOperand(operand_value); |
| return RegisterIsValid(reg, operand_type); |
| } |