| Index: src/interpreter/bytecodes.h
|
| diff --git a/src/interpreter/bytecodes.h b/src/interpreter/bytecodes.h
|
| index b5f1a1ba52327ec0d8d470817a8f0d6b60949d2b..00712de3bdd94352eb74039fce89559330ad307f 100644
|
| --- a/src/interpreter/bytecodes.h
|
| +++ b/src/interpreter/bytecodes.h
|
| @@ -387,6 +387,11 @@ class Register final {
|
| static Register bytecode_offset();
|
| bool is_bytecode_offset() const;
|
|
|
| + // Returns a register that can be used to represent the accumulator
|
| + // within code in the interpreter, but should never be emitted in
|
| + // bytecode.
|
| + static Register virtual_accumulator();
|
| +
|
| OperandSize SizeOfOperand() const;
|
|
|
| int32_t ToOperand() const { return kRegisterFileStartOffset - index_; }
|
| @@ -505,6 +510,10 @@ class Bytecodes {
|
| static OperandSize GetOperandSize(Bytecode bytecode, int i,
|
| OperandScale operand_scale);
|
|
|
| + // Returns a pointer to an array of the operand sizes for |bytecode|.
|
| + static const OperandSize* GetOperandSizes(Bytecode bytecode,
|
| + OperandScale operand_scale);
|
| +
|
| // Returns the offset of the i-th operand of |bytecode| relative to the start
|
| // of the bytecode.
|
| static int GetOperandOffset(Bytecode bytecode, int i,
|
| @@ -642,9 +651,10 @@ class Bytecodes {
|
|
|
| // Return the OperandScale required for bytecode emission of
|
| // operand sizes.
|
| + static OperandScale OperandSizesToScale(OperandSize size0);
|
| + static OperandScale OperandSizesToScale(OperandSize size0, OperandSize size1);
|
| static OperandScale OperandSizesToScale(
|
| - OperandSize size0, OperandSize size1 = OperandSize::kByte,
|
| - OperandSize size2 = OperandSize::kByte,
|
| + OperandSize size0, OperandSize size1, OperandSize size2,
|
| OperandSize size3 = OperandSize::kByte);
|
|
|
| private:
|
|
|