diff options
Diffstat (limited to 'deps/v8/src/interpreter/interpreter-assembler.h')
-rw-r--r-- | deps/v8/src/interpreter/interpreter-assembler.h | 50 |
1 files changed, 31 insertions, 19 deletions
diff --git a/deps/v8/src/interpreter/interpreter-assembler.h b/deps/v8/src/interpreter/interpreter-assembler.h index aefd2bc053..5183f3efed 100644 --- a/deps/v8/src/interpreter/interpreter-assembler.h +++ b/deps/v8/src/interpreter/interpreter-assembler.h @@ -20,32 +20,41 @@ namespace interpreter { class V8_EXPORT_PRIVATE InterpreterAssembler : public CodeStubAssembler { public: - InterpreterAssembler(Isolate* isolate, Zone* zone, Bytecode bytecode, + InterpreterAssembler(compiler::CodeAssemblerState* state, Bytecode bytecode, OperandScale operand_scale); - virtual ~InterpreterAssembler(); + ~InterpreterAssembler(); - // Returns the count immediate for bytecode operand |operand_index| in the - // current bytecode. + // Returns the 32-bit unsigned count immediate for bytecode operand + // |operand_index| in the current bytecode. compiler::Node* BytecodeOperandCount(int operand_index); - // Returns the 8-bit flag for bytecode operand |operand_index| in the - // current bytecode. + // Returns the 32-bit unsigned flag for bytecode operand |operand_index| + // in the current bytecode. compiler::Node* BytecodeOperandFlag(int operand_index); - // Returns the index immediate for bytecode operand |operand_index| in the - // current bytecode. + // Returns the 32-bit zero-extended index immediate for bytecode operand + // |operand_index| in the current bytecode. compiler::Node* BytecodeOperandIdx(int operand_index); - // Returns the UImm8 immediate for bytecode operand |operand_index| in the - // current bytecode. + // Returns the smi index immediate for bytecode operand |operand_index| + // in the current bytecode. + compiler::Node* BytecodeOperandIdxSmi(int operand_index); + // Returns the 32-bit unsigned immediate for bytecode operand |operand_index| + // in the current bytecode. compiler::Node* BytecodeOperandUImm(int operand_index); - // Returns the Imm8 immediate for bytecode operand |operand_index| in the - // current bytecode. + // Returns the 32-bit signed immediate for bytecode operand |operand_index| + // in the current bytecode. compiler::Node* BytecodeOperandImm(int operand_index); - // Returns the register index for bytecode operand |operand_index| in the + // Returns the word-size signed immediate for bytecode operand |operand_index| + // in the current bytecode. + compiler::Node* BytecodeOperandImmIntPtr(int operand_index); + // Returns the smi immediate for bytecode operand |operand_index| in the // current bytecode. + compiler::Node* BytecodeOperandImmSmi(int operand_index); + // Returns the word-size sign-extended register index for bytecode operand + // |operand_index| in the current bytecode. compiler::Node* BytecodeOperandReg(int operand_index); - // Returns the runtime id immediate for bytecode operand + // Returns the 32-bit unsigned runtime id immediate for bytecode operand // |operand_index| in the current bytecode. compiler::Node* BytecodeOperandRuntimeId(int operand_index); - // Returns the intrinsic id immediate for bytecode operand + // Returns the 32-bit unsigned intrinsic id immediate for bytecode operand // |operand_index| in the current bytecode. compiler::Node* BytecodeOperandIntrinsicId(int operand_index); @@ -209,8 +218,8 @@ class V8_EXPORT_PRIVATE InterpreterAssembler : public CodeStubAssembler { // Saves and restores interpreter bytecode offset to the interpreter stack // frame when performing a call. - void CallPrologue() override; - void CallEpilogue() override; + void CallPrologue(); + void CallEpilogue(); // Increment the dispatch counter for the (current, next) bytecode pair. void TraceBytecodeDispatch(compiler::Node* target_index); @@ -218,8 +227,8 @@ class V8_EXPORT_PRIVATE InterpreterAssembler : public CodeStubAssembler { // Traces the current bytecode by calling |function_id|. void TraceBytecode(Runtime::FunctionId function_id); - // Updates the bytecode array's interrupt budget by |weight| and calls - // Runtime::kInterrupt if counter reaches zero. + // Updates the bytecode array's interrupt budget by a 32-bit signed |weight| + // and calls Runtime::kInterrupt if counter reaches zero. void UpdateInterruptBudget(compiler::Node* weight); // Returns the offset of register |index| relative to RegisterFilePointer(). @@ -236,6 +245,7 @@ class V8_EXPORT_PRIVATE InterpreterAssembler : public CodeStubAssembler { compiler::Node* BytecodeOperandReadUnaligned(int relative_offset, MachineType result_type); + // Returns zero- or sign-extended to word32 value of the operand. compiler::Node* BytecodeOperandUnsignedByte(int operand_index); compiler::Node* BytecodeOperandSignedByte(int operand_index); compiler::Node* BytecodeOperandUnsignedShort(int operand_index); @@ -243,6 +253,8 @@ class V8_EXPORT_PRIVATE InterpreterAssembler : public CodeStubAssembler { compiler::Node* BytecodeOperandUnsignedQuad(int operand_index); compiler::Node* BytecodeOperandSignedQuad(int operand_index); + // Returns zero- or sign-extended to word32 value of the operand of + // given size. compiler::Node* BytecodeSignedOperand(int operand_index, OperandSize operand_size); compiler::Node* BytecodeUnsignedOperand(int operand_index, |