| 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..4a1602a1d6ea6c3749cc74b30111c53a4cd1e730 100644
|
| --- a/src/interpreter/bytecode-array-builder.cc
|
| +++ b/src/interpreter/bytecode-array-builder.cc
|
| @@ -401,25 +401,6 @@ void BytecodeArrayBuilder::MoveRegisterUntranslated(Register from,
|
| Output(Bytecode::kMovWide, from.ToRawOperand(), to.ToRawOperand());
|
| }
|
|
|
| -bool BytecodeArrayBuilder::RegisterOperandIsMovable(Bytecode bytecode,
|
| - int operand_index) {
|
| - // By design, we only support moving individual registers. There
|
| - // should be wide variants of such bytecodes instead to avoid the
|
| - // need for a large translation window.
|
| - OperandType operand_type = Bytecodes::GetOperandType(bytecode, operand_index);
|
| - if (operand_type != OperandType::kReg8 &&
|
| - operand_type != OperandType::kReg16) {
|
| - return false;
|
| - } else if (operand_index + 1 == Bytecodes::NumberOfOperands(bytecode)) {
|
| - return true;
|
| - } else {
|
| - OperandType next_operand_type =
|
| - Bytecodes::GetOperandType(bytecode, operand_index + 1);
|
| - return (next_operand_type != OperandType::kRegCount8 &&
|
| - next_operand_type != OperandType::kRegCount16);
|
| - }
|
| -}
|
| -
|
| BytecodeArrayBuilder& BytecodeArrayBuilder::LoadGlobal(
|
| const Handle<String> name, int feedback_slot, LanguageMode language_mode,
|
| TypeofMode typeof_mode) {
|
| @@ -1413,8 +1394,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 +1406,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 +1420,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);
|
| }
|
|
|