| Index: src/interpreter/bytecodes.h
|
| diff --git a/src/interpreter/bytecodes.h b/src/interpreter/bytecodes.h
|
| index 5de9effd42f79a7dd8eb39e4c64b022b511fa71d..6232966bbca1abd5d655d46f1a915fcf613d26cf 100644
|
| --- a/src/interpreter/bytecodes.h
|
| +++ b/src/interpreter/bytecodes.h
|
| @@ -143,24 +143,24 @@ namespace interpreter {
|
| V(DeletePropertySloppy, AccumulatorUse::kReadWrite, OperandType::kReg) \
|
| \
|
| /* Call operations */ \
|
| - V(Call, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg, \
|
| - OperandType::kRegCount, OperandType::kIdx) \
|
| - V(TailCall, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg, \
|
| + V(Call, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kRegList, \
|
| OperandType::kRegCount, OperandType::kIdx) \
|
| + V(TailCall, AccumulatorUse::kWrite, OperandType::kReg, \
|
| + OperandType::kRegList, OperandType::kRegCount, OperandType::kIdx) \
|
| V(CallRuntime, AccumulatorUse::kWrite, OperandType::kRuntimeId, \
|
| - OperandType::kMaybeReg, OperandType::kRegCount) \
|
| + OperandType::kRegList, OperandType::kRegCount) \
|
| V(CallRuntimeForPair, AccumulatorUse::kNone, OperandType::kRuntimeId, \
|
| - OperandType::kMaybeReg, OperandType::kRegCount, OperandType::kRegOutPair) \
|
| + OperandType::kRegList, OperandType::kRegCount, OperandType::kRegOutPair) \
|
| V(CallJSRuntime, AccumulatorUse::kWrite, OperandType::kIdx, \
|
| - OperandType::kReg, OperandType::kRegCount) \
|
| + OperandType::kRegList, OperandType::kRegCount) \
|
| \
|
| /* Intrinsics */ \
|
| V(InvokeIntrinsic, AccumulatorUse::kWrite, OperandType::kIntrinsicId, \
|
| - OperandType::kMaybeReg, OperandType::kRegCount) \
|
| + OperandType::kRegList, OperandType::kRegCount) \
|
| \
|
| /* New operator */ \
|
| - V(New, AccumulatorUse::kReadWrite, OperandType::kReg, \
|
| - OperandType::kMaybeReg, OperandType::kRegCount, OperandType::kIdx) \
|
| + V(New, AccumulatorUse::kReadWrite, OperandType::kReg, OperandType::kRegList, \
|
| + OperandType::kRegCount, OperandType::kIdx) \
|
| \
|
| /* Test Operators */ \
|
| V(TestEqual, AccumulatorUse::kReadWrite, OperandType::kReg, \
|
| @@ -648,10 +648,11 @@ class Bytecodes final {
|
| static bool IsStarLookahead(Bytecode bytecode, OperandScale operand_scale);
|
|
|
| // Returns the number of registers represented by a register operand. For
|
| - // instance, a RegPair represents two registers.
|
| + // instance, a RegPair represents two registers. Should not be called for
|
| + // kRegList which has a variable number of registers based on the following
|
| + // kRegCount operand.
|
| static int GetNumberOfRegistersRepresentedBy(OperandType operand_type) {
|
| switch (operand_type) {
|
| - case OperandType::kMaybeReg:
|
| case OperandType::kReg:
|
| case OperandType::kRegOut:
|
| return 1;
|
| @@ -660,6 +661,9 @@ class Bytecodes final {
|
| return 2;
|
| case OperandType::kRegOutTriple:
|
| return 3;
|
| + case OperandType::kRegList:
|
| + UNREACHABLE();
|
| + return 0;
|
| default:
|
| return 0;
|
| }
|
|
|