| Index: src/interpreter/bytecodes.h
|
| diff --git a/src/interpreter/bytecodes.h b/src/interpreter/bytecodes.h
|
| index 5af551376893d3c1bf3c1f1df87e475343eb530f..5a3e46805f3b0df4ebbbbdcabd6548ca6a720341 100644
|
| --- a/src/interpreter/bytecodes.h
|
| +++ b/src/interpreter/bytecodes.h
|
| @@ -25,12 +25,13 @@ namespace interpreter {
|
| V(Count8, OperandSize::kByte) \
|
| V(Imm8, OperandSize::kByte) \
|
| V(Idx8, OperandSize::kByte) \
|
| - V(Reg8, OperandSize::kByte) \
|
| V(MaybeReg8, OperandSize::kByte) \
|
| + V(Reg8, OperandSize::kByte) \
|
| \
|
| /* Short operands. */ \
|
| V(Count16, OperandSize::kShort) \
|
| - V(Idx16, OperandSize::kShort)
|
| + V(Idx16, OperandSize::kShort) \
|
| + V(Reg16, OperandSize::kShort)
|
|
|
| // The list of bytecodes which are interpreted by the interpreter.
|
| #define BYTECODE_LIST(V) \
|
| @@ -78,6 +79,8 @@ namespace interpreter {
|
| \
|
| /* Register-register transfers */ \
|
| V(Mov, OperandType::kReg8, OperandType::kReg8) \
|
| + V(Exchange, OperandType::kReg8, OperandType::kReg16) \
|
| + V(ExchangeWide, OperandType::kReg16, OperandType::kReg16) \
|
| \
|
| /* LoadIC operations */ \
|
| V(LoadICSloppy, OperandType::kReg8, OperandType::kIdx8, OperandType::kIdx8) \
|
| @@ -249,15 +252,9 @@ enum class Bytecode : uint8_t {
|
| // in its stack-frame. Register hold parameters, this, and expression values.
|
| class Register {
|
| public:
|
| - static const int kMaxRegisterIndex = 127;
|
| - static const int kMinRegisterIndex = -128;
|
| -
|
| Register() : index_(kIllegalIndex) {}
|
|
|
| - explicit Register(int index) : index_(index) {
|
| - DCHECK_LE(index_, kMaxRegisterIndex);
|
| - DCHECK_GE(index_, kMinRegisterIndex);
|
| - }
|
| + explicit Register(int index) : index_(index) {}
|
|
|
| int index() const {
|
| DCHECK(index_ != kIllegalIndex);
|
| @@ -285,6 +282,9 @@ class Register {
|
| static Register FromOperand(uint8_t operand);
|
| uint8_t ToOperand() const;
|
|
|
| + static Register FromWideOperand(uint16_t operand);
|
| + uint16_t ToWideOperand() const;
|
| +
|
| static bool AreContiguous(Register reg1, Register reg2,
|
| Register reg3 = Register(),
|
| Register reg4 = Register(),
|
|
|