v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
bytecodes.cc File Reference
#include "src/interpreter/bytecodes.h"
#include <iomanip>
#include "src/interpreter/bytecode-traits.h"
Include dependency graph for bytecodes.cc:

Go to the source code of this file.

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::interpreter
 

Macros

#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ENTRY(Name, ...)
 
#define ASSERT_SHORT_STAR_RANGE(Name, ...)
 
#define CASE(Name, ...)
 
#define RETURN_IF_DEBUG_BREAK_SIZE_MATCHES(Name)
 
#define CASE(Name, ...)
 
#define CASE(Name, _)
 
#define CASE(Name, _)
 
#define CASE(Name, _)
 
#define CASE(Name, _)
 
#define CASE(Name, _)
 
#define CASE(Name, _)
 
#define CASE(Name, _)
 

Functions

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

Macro Definition Documentation

◆ ASSERT_SHORT_STAR_RANGE

#define ASSERT_SHORT_STAR_RANGE ( Name,
... )
Value:
static_assert(Bytecode::k##Name >= Bytecode::kFirstShortStar && \
Bytecode::k##Name <= Bytecode::kLastShortStar);

Definition at line 116 of file bytecodes.cc.

◆ CASE [1/9]

#define CASE ( Name,
_ )
Value:
case OperandType::k##Name: \
return true;

◆ CASE [2/9]

#define CASE ( Name,
_ )
Value:
case OperandType::k##Name: \
break;

◆ CASE [3/9]

#define CASE ( Name,
_ )
Value:
case OperandType::k##Name: \
return true;

◆ CASE [4/9]

#define CASE ( Name,
_ )
Value:
case OperandType::k##Name: \
break;

◆ CASE [5/9]

#define CASE ( Name,
_ )
Value:
case OperandType::k##Name: \
return true;

◆ CASE [6/9]

#define CASE ( Name,
_ )
Value:
case OperandType::k##Name: \
break;

◆ CASE [7/9]

#define CASE ( Name,
_ )
Value:
case OperandType::k##Name: \
return OperandTraits<OperandType::k##Name>::TypeInfoTraits::kIsUnsigned;

◆ CASE [8/9]

#define CASE ( Name,
... )
Value:
case Bytecode::k##Name: \
return #Name;

◆ CASE [9/9]

#define CASE ( Name,
... )
Value:
case Bytecode::k##Name:

◆ ENTRY [1/16]

#define ENTRY ( Name,
... )
Value:
BytecodeTraits<__VA_ARGS__>::kOperandTypes,

◆ ENTRY [2/16]

#define ENTRY ( Name,
... )
Value:
BytecodeTraits<__VA_ARGS__>::kOperandTypeInfos,

◆ ENTRY [3/16]

#define ENTRY ( Name,
... )
Value:
BytecodeTraits<__VA_ARGS__>::kOperandCount,

◆ ENTRY [4/16]

#define ENTRY ( Name,
... )
Value:
BytecodeTraits<__VA_ARGS__>::kImplicitRegisterUse,

◆ ENTRY [5/16]

#define ENTRY ( Name,
... )
Value:
BytecodeTraits<__VA_ARGS__>::kSingleScaleSize,

◆ ENTRY [6/16]

#define ENTRY ( Name,
... )
Value:
BytecodeTraits<__VA_ARGS__>::kDoubleScaleSize,

◆ ENTRY [7/16]

#define ENTRY ( Name,
... )
Value:
BytecodeTraits<__VA_ARGS__>::kQuadrupleScaleSize,

◆ ENTRY [8/16]

#define ENTRY ( Name,
... )
Value:
BytecodeTraits<__VA_ARGS__>::kSingleScaleOperandSizes,

◆ ENTRY [9/16]

#define ENTRY ( Name,
... )
Value:
BytecodeTraits<__VA_ARGS__>::kDoubleScaleOperandSizes,

◆ ENTRY [10/16]

#define ENTRY ( Name,
... )
Value:
BytecodeTraits<__VA_ARGS__>::kQuadrupleScaleOperandSizes,

◆ ENTRY [11/16]

#define ENTRY ( Name,
... )
Value:
BytecodeTraits<__VA_ARGS__>::kSingleScaleOperandOffsets.data(),

◆ ENTRY [12/16]

#define ENTRY ( Name,
... )
Value:
BytecodeTraits<__VA_ARGS__>::kDoubleScaleOperandOffsets.data(),

◆ ENTRY [13/16]

#define ENTRY ( Name,
... )
Value:
BytecodeTraits<__VA_ARGS__>::kQuadrupleScaleOperandOffsets.data(),

◆ ENTRY [14/16]

#define ENTRY ( Name,
... )
Value:
OperandScaler<OperandType::k##Name, OperandScale::kSingle>::kOperandSize,

◆ ENTRY [15/16]

#define ENTRY ( Name,
... )
Value:
OperandScaler<OperandType::k##Name, OperandScale::kDouble>::kOperandSize,

◆ ENTRY [16/16]

#define ENTRY ( Name,
... )
Value:
OperandScaler<OperandType::k##Name, OperandScale::kQuadruple>::kOperandSize,

◆ RETURN_IF_DEBUG_BREAK_SIZE_MATCHES

#define RETURN_IF_DEBUG_BREAK_SIZE_MATCHES ( Name)
Value:
if (bytecode_size == Size(Bytecode::k##Name, OperandScale::kSingle)) { \
return Bytecode::k##Name; \
}