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: |