v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
code-assembler.h File Reference
#include <initializer_list>
#include <map>
#include <memory>
#include <optional>
#include <sstream>
#include <type_traits>
#include "include/cppgc/source-location.h"
#include "src/base/macros.h"
#include "src/builtins/builtins.h"
#include "src/codegen/atomic-memory-order.h"
#include "src/codegen/callable.h"
#include "src/codegen/handler-table.h"
#include "src/codegen/machine-type.h"
#include "src/codegen/source-position.h"
#include "src/codegen/tnode.h"
#include "src/heap/heap.h"
#include "src/objects/object-type.h"
#include "src/objects/objects.h"
#include "src/runtime/runtime.h"
#include "src/zone/zone-containers.h"
Include dependency graph for code-assembler.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  v8::internal::ObjectTypeOf< T >
 
struct  v8::internal::ObjectTypeOf< Union< T... > >
 
class  v8::internal::compiler::CodeAssembler
 
class  v8::internal::compiler::CodeAssembler::BuiltinCompilationScheduler
 
class  v8::internal::compiler::CodeAssembler::CheckedNode< PreviousType, FromTyped >
 
struct  v8::internal::compiler::CodeAssembler::MessageWithSourceLocation
 
class  v8::internal::compiler::CodeAssembler::SourcePositionScope
 
class  v8::internal::compiler::CodeAssemblerVariable
 
struct  v8::internal::compiler::CodeAssemblerVariable::ImplComparator
 
class  v8::internal::compiler::TypedCodeAssemblerVariable< T >
 
class  v8::internal::compiler::CodeAssemblerLabel
 
class  v8::internal::compiler::CodeAssemblerParameterizedLabelBase
 
class  v8::internal::compiler::CodeAssemblerParameterizedLabel< Types >
 
class  v8::internal::compiler::CodeAssemblerState
 
class  v8::internal::compiler::ScopedExceptionHandler
 

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::compiler
 

Macros

#define MAKE_FORWARD_DECLARATION(Name)
 
#define OBJECT_TYPE_CASE(Name)
 
#define OBJECT_TYPE_STRUCT_CASE(NAME, Name, name)
 
#define OBJECT_TYPE_TEMPLATE_CASE(Name)
 
#define OBJECT_TYPE_ODDBALL_CASE(Name)
 
#define PAIR_TYPE(T1, T2)
 
#define CODE_ASSEMBLER_COMPARE_BINARY_OP_LIST(V)
 
#define CODE_ASSEMBLER_BINARY_OP_LIST(V)
 
#define CODE_ASSEMBLER_UNARY_OP_LIST(V)
 
#define CAST(x)
 
#define TORQUE_CAST(...)
 
#define DECLARE_CODE_ASSEMBLER_BINARY_OP(name, ResType, Arg1Type, Arg2Type)
 
#define DECLARE_CODE_ASSEMBLER_UNARY_OP(name, ResType, ArgType)
 

Typedefs

using v8::internal::compiler::CodeAssemblerVariableList = ZoneVector<CodeAssemblerVariable*>
 
using v8::internal::compiler::CodeAssemblerCallback = std::function<void()>
 
using v8::internal::compiler::CodeAssemblerExceptionHandlerLabel
 

Enumerations

enum class  v8::internal::CheckBounds { v8::internal::kAlways , v8::internal::kDebugOnly }
 
enum class  v8::internal::StoreToObjectWriteBarrier { v8::internal::kNone , v8::internal::kMap , v8::internal::kFull }
 

Functions

bool v8::internal::NeedsBoundsCheck (CheckBounds check_bounds)
 
TNode< Float64Tv8::internal::compiler::Float64Add (TNode< Float64T > a, TNode< Float64T > b)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const CodeAssemblerVariable &variable)
 
std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const CodeAssemblerVariable::Impl &impl)
 

Macro Definition Documentation

◆ CAST

#define CAST ( x)
Value:
Cast(x)
int x

Definition at line 570 of file code-assembler.h.

◆ CODE_ASSEMBLER_BINARY_OP_LIST

#define CODE_ASSEMBLER_BINARY_OP_LIST ( V)

Definition at line 229 of file code-assembler.h.

◆ CODE_ASSEMBLER_COMPARE_BINARY_OP_LIST

#define CODE_ASSEMBLER_COMPARE_BINARY_OP_LIST ( V)

Definition at line 191 of file code-assembler.h.

◆ CODE_ASSEMBLER_UNARY_OP_LIST

#define CODE_ASSEMBLER_UNARY_OP_LIST ( V)

Definition at line 299 of file code-assembler.h.

◆ DECLARE_CODE_ASSEMBLER_BINARY_OP

#define DECLARE_CODE_ASSEMBLER_BINARY_OP ( name,
ResType,
Arg1Type,
Arg2Type )
Value:
TNode<ResType> name(TNode<Arg1Type> a, TNode<Arg2Type> b);
const char * name
Definition builtins.cc:39

Definition at line 1019 of file code-assembler.h.

◆ DECLARE_CODE_ASSEMBLER_UNARY_OP

#define DECLARE_CODE_ASSEMBLER_UNARY_OP ( name,
ResType,
ArgType )
Value:
TNode<ResType> name(TNode<ArgType> a);

Definition at line 1264 of file code-assembler.h.

◆ MAKE_FORWARD_DECLARATION

#define MAKE_FORWARD_DECLARATION ( Name)
Value:
class Name;

Definition at line 80 of file code-assembler.h.

◆ OBJECT_TYPE_CASE

#define OBJECT_TYPE_CASE ( Name)
Value:
template <> \
struct ObjectTypeOf<Name> { \
static constexpr ObjectType value = ObjectType::k##Name; \
};

Definition at line 102 of file code-assembler.h.

◆ OBJECT_TYPE_ODDBALL_CASE

#define OBJECT_TYPE_ODDBALL_CASE ( Name)
Value:
template <> \
struct ObjectTypeOf<Name> { \
static constexpr ObjectType value = ObjectType::kOddball; \
};

Definition at line 117 of file code-assembler.h.

◆ OBJECT_TYPE_STRUCT_CASE

#define OBJECT_TYPE_STRUCT_CASE ( NAME,
Name,
name )
Value:
template <> \
struct ObjectTypeOf<Name> { \
static constexpr ObjectType value = ObjectType::k##Name; \
};

Definition at line 107 of file code-assembler.h.

◆ OBJECT_TYPE_TEMPLATE_CASE

#define OBJECT_TYPE_TEMPLATE_CASE ( Name)
Value:
template <class... Args> \
struct ObjectTypeOf<Name<Args...>> { \
static constexpr ObjectType value = ObjectType::k##Name; \
};

Definition at line 112 of file code-assembler.h.

◆ PAIR_TYPE

#define PAIR_TYPE ( T1,
T2 )
Value:
PairT<T1, T2>

Definition at line 189 of file code-assembler.h.

◆ TORQUE_CAST

#define TORQUE_CAST ( ...)
Value:
ca_.Cast(__VA_ARGS__)

Definition at line 571 of file code-assembler.h.