v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::interpreter Namespace Reference

Namespaces

namespace  bytecode_array_writer_unittest
 

Classes

class  BlockBuilder
 
class  BlockCoverageBuilder
 
class  BreakableControlFlowBuilder
 
class  BytecodeArrayBuilder
 
class  BytecodeArrayIterator
 
class  BytecodeArrayRandomIterator
 
class  BytecodeArrayWriter
 
class  BytecodeDecoder
 
class  BytecodeGenerator
 
class  BytecodeHandlerReducer
 
class  BytecodeJumpTable
 
class  BytecodeLabel
 
class  BytecodeLabels
 
class  BytecodeLoopHeader
 
class  BytecodeNode
 
class  BytecodeNodeBuilder
 
class  BytecodeOperands
 
class  BytecodeRegisterAllocator
 
class  BytecodeRegisterOptimizer
 
class  Bytecodes
 
class  BytecodeSourceInfo
 
struct  BytecodeTraits
 
struct  BytecodeTraits< implicit_register_use >
 
class  ConditionalChainControlFlowBuilder
 
class  ConditionalControlFlowBuilder
 
class  ConstantArrayBuilder
 
class  ControlFlowBuilder
 
class  CreateArrayLiteralFlags
 
class  CreateClosureFlags
 
class  CreateObjectLiteralFlags
 
class  HandlerTableBuilder
 
class  Interpreter
 
class  InterpreterAssembler
 
class  InterpreterCompilationJob
 
class  IntrinsicsGenerator
 
class  IntrinsicsHelper
 
struct  JumpTableTargetOffset
 
class  JumpTableTargetOffsets
 
class  LoopBuilder
 
struct  OperandScaler
 
struct  OperandTraits
 
struct  OperandTypeInfoTraits
 
class  Register
 
class  RegisterList
 
class  RegisterTransferWriter
 
class  StoreLookupSlotFlags
 
class  SwitchBuilder
 
class  TestTypeOfFlags
 
class  TryCatchBuilder
 
class  TryFinallyBuilder
 
class  TurboshaftBytecodeHandlerAssembler
 
struct  VariableHint
 

Typedefs

using TypeHint = BytecodeRegisterOptimizer::TypeHint
 
using NumberBuiltinsBytecodeHandlerAssembler
 
using BytecodeHandlerData = compiler::turboshaft::BytecodeHandlerData
 

Enumerations

enum class  TryFinallyContinuationToken : int { kFallthroughToken = -1 , kRethrowToken = 0 }
 
enum class  OperandScale : uint8_t { DECLARE_OPERAND_SCALE , kLast = kQuadruple }
 
enum class  OperandSize : uint8_t {
  kNone = 0 , kByte = 1 , kShort = 2 , kQuad = 4 ,
  kLast = kQuad
}
 
enum class  OperandTypeInfo : uint8_t { DECLARE_OPERAND_TYPE_INFO }
 
enum class  OperandType : uint8_t { DECLARE_OPERAND_TYPE , COUNT_OPERAND_TYPES , kLast = -1 OPERAND_TYPE_LIST(COUNT_OPERAND_TYPES) }
 
enum class  ImplicitRegisterUse : uint8_t {
  kNone = 0 , kReadAccumulator = 1 << 0 , kWriteAccumulator = 1 << 1 , kClobberAccumulator = 1 << 2 ,
  kWriteShortStar = 1 << 3 , kReadWriteAccumulator = kReadAccumulator | kWriteAccumulator , kReadAndClobberAccumulator = kReadAccumulator | kClobberAccumulator , kReadAccumulatorWriteShortStar = kReadAccumulator | kWriteShortStar
}
 
enum class  VariableHintMode { kDefinitelyHasVariable , kMightHaveVariable }
 
enum class  MaterializedInfo { kNotMaterialized , kMaterialized }
 
enum class  ResetVariableHint { kDontReset , kReset }
 
enum class  Bytecode : uint8_t {
  DECLARE_BYTECODE , COUNT_BYTECODE , kLast = -1 BYTECODE_LIST(COUNT_BYTECODE, COUNT_BYTECODE) , kFirstShortStar = kStar15 ,
  kLastShortStar = kStar0
}
 

Functions

void WriteBytecode (std::ofstream &out, Bytecode bytecode, OperandScale operand_scale, int *count, int offset_table[], int table_index)
 
void WriteHeader (const char *header_filename)
 
std::ostream & operator<< (std::ostream &os, const BytecodeArrayBuilder::ToBooleanMode &mode)
 
Bytecode GetJumpWithConstantOperand (Bytecode jump_bytecode)
 
static bool IsTypeof (Expression *expr)
 
static bool IsCharU (const AstRawString *str)
 
static bool IsLiteralCompareTypeof (CompareOperation *expr, Expression **sub_expr, TestTypeOfFlags::LiteralFlag *flag, const AstStringConstants *ast_constants)
 
std::ostream & operator<< (std::ostream &os, const BytecodeNode &node)
 
std::ostream & operator<< (std::ostream &os, const ImplicitRegisterUse &use)
 
std::ostream & operator<< (std::ostream &os, const OperandSize &operand_size)
 
std::ostream & operator<< (std::ostream &os, const OperandScale &operand_scale)
 
std::ostream & operator<< (std::ostream &os, const OperandType &operand_type)
 
constexpr ImplicitRegisterUse operator& (ImplicitRegisterUse lhs, ImplicitRegisterUse rhs)
 
constexpr ImplicitRegisterUse operator| (ImplicitRegisterUse lhs, ImplicitRegisterUse rhs)
 
constexpr int OffsetFromFPToRegisterIndex (int offset)
 
std::ostream & operator<< (std::ostream &os, const BytecodeSourceInfo &info)
 
std::ostream & operator<< (std::ostream &os, const Bytecode &bytecode)
 
 IGNITION_HANDLER_TS (BitwiseNot, NumberBuiltinsBytecodeHandlerAssembler)
 
void BitwiseNotAssemblerTS_Generate (compiler::turboshaft::PipelineData *data, Isolate *isolate, compiler::turboshaft::Graph &graph, Zone *zone)
 
void GenerateBytecodeHandler (compiler::CodeAssemblerState *state, Bytecode bytecode, OperandScale operand_scale)
 
TNode< ObjectGenerateInvokeIntrinsic (InterpreterAssembler *assembler, TNode< Uint32T > function_id, TNode< Context > context, const InterpreterAssembler::RegListNodePair &args)
 

Variables

const int kIllegalBytecodeHandler = -1
 
const int kIllegalBytecodeHandlerEncoding = 255
 

Typedef Documentation

◆ BytecodeHandlerData

◆ NumberBuiltinsBytecodeHandlerAssembler

Initial value:
TurboshaftBytecodeHandlerAssembler<NumberBuiltinsReducer>

Definition at line 330 of file interpreter-generator-tsa.cc.

◆ TypeHint

Enumeration Type Documentation

◆ Bytecode

enum class v8::internal::interpreter::Bytecode : uint8_t
strong
Enumerator
DECLARE_BYTECODE 
COUNT_BYTECODE 
kLast 
kFirstShortStar 
kLastShortStar 

Definition at line 584 of file bytecodes.h.

◆ ImplicitRegisterUse

Enumerator
kNone 
kReadAccumulator 
kWriteAccumulator 
kClobberAccumulator 
kWriteShortStar 
kReadWriteAccumulator 
kReadAndClobberAccumulator 
kReadAccumulatorWriteShortStar 

Definition at line 114 of file bytecode-operands.h.

◆ MaterializedInfo

Enumerator
kNotMaterialized 
kMaterialized 

Definition at line 26 of file bytecode-register-optimizer.cc.

◆ OperandScale

enum class v8::internal::interpreter::OperandScale : uint8_t
strong
Enumerator
DECLARE_OPERAND_SCALE 
kLast 

Definition at line 69 of file bytecode-operands.h.

◆ OperandSize

enum class v8::internal::interpreter::OperandSize : uint8_t
strong
Enumerator
kNone 
kByte 
kShort 
kQuad 
kLast 

Definition at line 79 of file bytecode-operands.h.

◆ OperandType

enum class v8::internal::interpreter::OperandType : uint8_t
strong
Enumerator
DECLARE_OPERAND_TYPE 
COUNT_OPERAND_TYPES 
kLast 

Definition at line 103 of file bytecode-operands.h.

◆ OperandTypeInfo

enum class v8::internal::interpreter::OperandTypeInfo : uint8_t
strong
Enumerator
DECLARE_OPERAND_TYPE_INFO 

Definition at line 96 of file bytecode-operands.h.

◆ ResetVariableHint

Enumerator
kDontReset 
kReset 

Definition at line 28 of file bytecode-register-optimizer.cc.

◆ TryFinallyContinuationToken

Enumerator
kFallthroughToken 
kRethrowToken 

Definition at line 100 of file bytecode-flags-and-tokens.h.

◆ VariableHintMode

Enumerator
kDefinitelyHasVariable 
kMightHaveVariable 

Definition at line 19 of file bytecode-register-optimizer.cc.

Function Documentation

◆ BitwiseNotAssemblerTS_Generate()

void v8::internal::interpreter::BitwiseNotAssemblerTS_Generate ( compiler::turboshaft::PipelineData * data,
Isolate * isolate,
compiler::turboshaft::Graph & graph,
Zone * zone )

◆ GenerateBytecodeHandler()

void v8::internal::interpreter::GenerateBytecodeHandler ( compiler::CodeAssemblerState * state,
Bytecode bytecode,
OperandScale operand_scale )

Definition at line 3368 of file interpreter-generator.cc.

Here is the call graph for this function:

◆ GenerateInvokeIntrinsic()

TNode< Object > v8::internal::interpreter::GenerateInvokeIntrinsic ( InterpreterAssembler * assembler,
TNode< Uint32T > function_id,
TNode< Context > context,
const InterpreterAssembler::RegListNodePair & args )

Definition at line 54 of file interpreter-intrinsics-generator.cc.

◆ GetJumpWithConstantOperand()

Bytecode v8::internal::interpreter::GetJumpWithConstantOperand ( Bytecode jump_bytecode)

Definition at line 320 of file bytecode-array-writer.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IGNITION_HANDLER_TS()

v8::internal::interpreter::IGNITION_HANDLER_TS ( BitwiseNot ,
NumberBuiltinsBytecodeHandlerAssembler  )

Definition at line 333 of file interpreter-generator-tsa.cc.

◆ IsCharU()

static bool v8::internal::interpreter::IsCharU ( const AstRawString * str)
static

Definition at line 7403 of file bytecode-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsLiteralCompareTypeof()

static bool v8::internal::interpreter::IsLiteralCompareTypeof ( CompareOperation * expr,
Expression ** sub_expr,
TestTypeOfFlags::LiteralFlag * flag,
const AstStringConstants * ast_constants )
static

Definition at line 7407 of file bytecode-generator.cc.

Here is the call graph for this function:

◆ IsTypeof()

static bool v8::internal::interpreter::IsTypeof ( Expression * expr)
static

Definition at line 7398 of file bytecode-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OffsetFromFPToRegisterIndex()

int v8::internal::interpreter::OffsetFromFPToRegisterIndex ( int offset)
constexpr

Definition at line 20 of file bytecode-register.h.

◆ operator&()

ImplicitRegisterUse v8::internal::interpreter::operator& ( ImplicitRegisterUse lhs,
ImplicitRegisterUse rhs )
inlineconstexpr

Definition at line 125 of file bytecode-operands.h.

◆ operator<<() [1/8]

V8_EXPORT_PRIVATE std::ostream & v8::internal::interpreter::operator<< ( std::ostream & os,
const Bytecode & bytecode )

Definition at line 340 of file bytecodes.cc.

Here is the call graph for this function:

◆ operator<<() [2/8]

V8_EXPORT_PRIVATE std::ostream & v8::internal::interpreter::operator<< ( std::ostream & os,
const BytecodeArrayBuilder::ToBooleanMode & mode )

Definition at line 1760 of file bytecode-array-builder.cc.

Here is the call graph for this function:

◆ operator<<() [3/8]

V8_EXPORT_PRIVATE std::ostream & v8::internal::interpreter::operator<< ( std::ostream & os,
const BytecodeNode & node )

Definition at line 49 of file bytecode-node.cc.

◆ operator<<() [4/8]

V8_EXPORT_PRIVATE std::ostream & v8::internal::interpreter::operator<< ( std::ostream & os,
const BytecodeSourceInfo & info )

Definition at line 13 of file bytecode-source-info.cc.

◆ operator<<() [5/8]

V8_EXPORT_PRIVATE std::ostream & v8::internal::interpreter::operator<< ( std::ostream & os,
const ImplicitRegisterUse & use )

Definition at line 76 of file bytecode-operands.cc.

◆ operator<<() [6/8]

V8_EXPORT_PRIVATE std::ostream & v8::internal::interpreter::operator<< ( std::ostream & os,
const OperandScale & operand_scale )

Definition at line 84 of file bytecode-operands.cc.

◆ operator<<() [7/8]

V8_EXPORT_PRIVATE std::ostream & v8::internal::interpreter::operator<< ( std::ostream & os,
const OperandSize & operand_size )

Definition at line 80 of file bytecode-operands.cc.

◆ operator<<() [8/8]

V8_EXPORT_PRIVATE std::ostream & v8::internal::interpreter::operator<< ( std::ostream & os,
const OperandType & operand_type )

Definition at line 88 of file bytecode-operands.cc.

◆ operator|()

ImplicitRegisterUse v8::internal::interpreter::operator| ( ImplicitRegisterUse lhs,
ImplicitRegisterUse rhs )
inlineconstexpr

Definition at line 131 of file bytecode-operands.h.

◆ WriteBytecode()

void v8::internal::interpreter::WriteBytecode ( std::ofstream & out,
Bytecode bytecode,
OperandScale operand_scale,
int * count,
int offset_table[],
int table_index )

Definition at line 17 of file generate-bytecodes-builtins-list.cc.

Here is the call graph for this function:

◆ WriteHeader()

void v8::internal::interpreter::WriteHeader ( const char * header_filename)

Definition at line 41 of file generate-bytecodes-builtins-list.cc.

Here is the caller graph for this function:

Variable Documentation

◆ kIllegalBytecodeHandler

const int v8::internal::interpreter::kIllegalBytecodeHandler = -1

Definition at line 14 of file generate-bytecodes-builtins-list.cc.

◆ kIllegalBytecodeHandlerEncoding

const int v8::internal::interpreter::kIllegalBytecodeHandlerEncoding = 255

Definition at line 15 of file generate-bytecodes-builtins-list.cc.