v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
bytecodes.h File Reference
#include <cstdint>
#include <iosfwd>
#include <string>
#include "src/common/globals.h"
#include "src/interpreter/bytecode-operands.h"
Include dependency graph for bytecodes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::internal::interpreter::Bytecodes
 

Namespaces

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

Macros

#define SHORT_STAR_BYTECODE_LIST(V)
 
#define BYTECODE_LIST_WITH_UNIQUE_HANDLERS_IMPL(V, V_TSA)
 
#define BYTECODE_LIST_WITH_UNIQUE_HANDLERS(V, V_TSA)
 
#define BYTECODE_LIST(V, V_TSA)
 
#define DEBUG_BREAK_PLAIN_BYTECODE_LIST(V)
 
#define DEBUG_BREAK_PREFIX_BYTECODE_LIST(V)
 
#define DEBUG_BREAK_BYTECODE_LIST(V)
 
#define JUMP_UNCONDITIONAL_IMMEDIATE_BYTECODE_LIST(V)
 
#define JUMP_UNCONDITIONAL_CONSTANT_BYTECODE_LIST(V)
 
#define JUMP_TOBOOLEAN_CONDITIONAL_IMMEDIATE_BYTECODE_LIST(V)
 
#define JUMP_TOBOOLEAN_CONDITIONAL_CONSTANT_BYTECODE_LIST(V)
 
#define JUMP_CONDITIONAL_IMMEDIATE_BYTECODE_LIST(V)
 
#define JUMP_CONDITIONAL_CONSTANT_BYTECODE_LIST(V)
 
#define JUMP_CONSTANT_BYTECODE_LIST(V)
 
#define JUMP_IMMEDIATE_BYTECODE_LIST(V)
 
#define JUMP_TO_BOOLEAN_BYTECODE_LIST(V)
 
#define JUMP_UNCONDITIONAL_BYTECODE_LIST(V)
 
#define JUMP_CONDITIONAL_BYTECODE_LIST(V)
 
#define JUMP_FORWARD_BYTECODE_LIST(V)
 
#define JUMP_BYTECODE_LIST(V)
 
#define RETURN_BYTECODE_LIST(V)
 
#define UNCONDITIONAL_THROW_BYTECODE_LIST(V)
 
#define DECLARE_BYTECODE(Name, ...)
 
#define COUNT_BYTECODE(x, ...)
 
#define OR_BYTECODE(NAME)
 
#define OR_BYTECODE(NAME)
 

Enumerations

enum class  v8::internal::interpreter::Bytecode : uint8_t {
  v8::internal::interpreter::DECLARE_BYTECODE , v8::internal::interpreter::COUNT_BYTECODE , v8::internal::interpreter::kLast = -1 BYTECODE_LIST(COUNT_BYTECODE, COUNT_BYTECODE) , v8::internal::interpreter::kFirstShortStar = kStar15 ,
  v8::internal::interpreter::kLastShortStar = kStar0
}
 

Functions

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

Macro Definition Documentation

◆ BYTECODE_LIST

#define BYTECODE_LIST ( V,
V_TSA )
Value:
\
/* Special-case Star for common register numbers, to save space */ \
SHORT_STAR_BYTECODE_LIST(V) \
\
/* Illegal bytecode */ \
V(Illegal, ImplicitRegisterUse::kNone)
#define V(Name)
#define BYTECODE_LIST_WITH_UNIQUE_HANDLERS(V, V_TSA)
Definition bytecodes.h:472

Definition at line 479 of file bytecodes.h.

◆ BYTECODE_LIST_WITH_UNIQUE_HANDLERS

#define BYTECODE_LIST_WITH_UNIQUE_HANDLERS ( V,
V_TSA )
Value:
#define BYTECODE_LIST_WITH_UNIQUE_HANDLERS_IMPL(V, V_TSA)
Definition bytecodes.h:49

Definition at line 472 of file bytecodes.h.

◆ BYTECODE_LIST_WITH_UNIQUE_HANDLERS_IMPL

#define BYTECODE_LIST_WITH_UNIQUE_HANDLERS_IMPL ( V,
V_TSA )

Definition at line 49 of file bytecodes.h.

◆ COUNT_BYTECODE

#define COUNT_BYTECODE ( x,
... )
Value:
+1

Definition at line 588 of file bytecodes.h.

◆ DEBUG_BREAK_BYTECODE_LIST

#define DEBUG_BREAK_BYTECODE_LIST ( V)
Value:
DEBUG_BREAK_PREFIX_BYTECODE_LIST(V)
#define DEBUG_BREAK_PLAIN_BYTECODE_LIST(V)
Definition bytecodes.h:489

Definition at line 502 of file bytecodes.h.

◆ DEBUG_BREAK_PLAIN_BYTECODE_LIST

#define DEBUG_BREAK_PLAIN_BYTECODE_LIST ( V)
Value:
V(DebugBreak0) \
V(DebugBreak1) \
V(DebugBreak2) \
V(DebugBreak3) \
V(DebugBreak4) \
V(DebugBreak5) \
V(DebugBreak6)

Definition at line 489 of file bytecodes.h.

◆ DEBUG_BREAK_PREFIX_BYTECODE_LIST

#define DEBUG_BREAK_PREFIX_BYTECODE_LIST ( V)
Value:
V(DebugBreakWide) \
V(DebugBreakExtraWide)

Definition at line 498 of file bytecodes.h.

◆ DECLARE_BYTECODE

#define DECLARE_BYTECODE ( Name,
... )
Value:
k##Name,

Definition at line 585 of file bytecodes.h.

◆ JUMP_BYTECODE_LIST

#define JUMP_BYTECODE_LIST ( V)
Value:
V(JumpLoop)
#define JUMP_FORWARD_BYTECODE_LIST(V)
Definition bytecodes.h:566

Definition at line 571 of file bytecodes.h.

◆ JUMP_CONDITIONAL_BYTECODE_LIST

#define JUMP_CONDITIONAL_BYTECODE_LIST ( V)
Value:
JUMP_CONDITIONAL_CONSTANT_BYTECODE_LIST(V)
#define JUMP_CONDITIONAL_IMMEDIATE_BYTECODE_LIST(V)
Definition bytecodes.h:522

Definition at line 562 of file bytecodes.h.

◆ JUMP_CONDITIONAL_CONSTANT_BYTECODE_LIST

#define JUMP_CONDITIONAL_CONSTANT_BYTECODE_LIST ( V)
Value:
V(JumpIfNullConstant) \
V(JumpIfNotNullConstant) \
V(JumpIfUndefinedConstant) \
V(JumpIfNotUndefinedConstant) \
V(JumpIfUndefinedOrNullConstant) \
V(JumpIfTrueConstant) \
V(JumpIfFalseConstant) \
V(JumpIfJSReceiverConstant) \
V(JumpIfForInDoneConstant)
#define JUMP_TOBOOLEAN_CONDITIONAL_CONSTANT_BYTECODE_LIST(V)
Definition bytecodes.h:518

Definition at line 534 of file bytecodes.h.

◆ JUMP_CONDITIONAL_IMMEDIATE_BYTECODE_LIST

#define JUMP_CONDITIONAL_IMMEDIATE_BYTECODE_LIST ( V)
Value:
V(JumpIfTrue) \
V(JumpIfFalse) \
V(JumpIfNull) \
V(JumpIfNotNull) \
V(JumpIfUndefined) \
V(JumpIfNotUndefined) \
V(JumpIfUndefinedOrNull) \
V(JumpIfJSReceiver) \
V(JumpIfForInDone)
#define JUMP_TOBOOLEAN_CONDITIONAL_IMMEDIATE_BYTECODE_LIST(V)
Definition bytecodes.h:514

Definition at line 522 of file bytecodes.h.

◆ JUMP_CONSTANT_BYTECODE_LIST

#define JUMP_CONSTANT_BYTECODE_LIST ( V)
Value:
JUMP_CONDITIONAL_CONSTANT_BYTECODE_LIST(V)
#define JUMP_UNCONDITIONAL_CONSTANT_BYTECODE_LIST(V)
Definition bytecodes.h:512

Definition at line 546 of file bytecodes.h.

◆ JUMP_FORWARD_BYTECODE_LIST

#define JUMP_FORWARD_BYTECODE_LIST ( V)
Value:
V(Jump) \
V(JumpConstant) \
JUMP_CONDITIONAL_BYTECODE_LIST(V)

Definition at line 566 of file bytecodes.h.

◆ JUMP_IMMEDIATE_BYTECODE_LIST

#define JUMP_IMMEDIATE_BYTECODE_LIST ( V)
Value:
JUMP_CONDITIONAL_IMMEDIATE_BYTECODE_LIST(V)
#define JUMP_UNCONDITIONAL_IMMEDIATE_BYTECODE_LIST(V)
Definition bytecodes.h:508

Definition at line 550 of file bytecodes.h.

◆ JUMP_TO_BOOLEAN_BYTECODE_LIST

#define JUMP_TO_BOOLEAN_BYTECODE_LIST ( V)
Value:
JUMP_TOBOOLEAN_CONDITIONAL_CONSTANT_BYTECODE_LIST(V)

Definition at line 554 of file bytecodes.h.

◆ JUMP_TOBOOLEAN_CONDITIONAL_CONSTANT_BYTECODE_LIST

#define JUMP_TOBOOLEAN_CONDITIONAL_CONSTANT_BYTECODE_LIST ( V)
Value:
V(JumpIfToBooleanTrueConstant) \
V(JumpIfToBooleanFalseConstant)

Definition at line 518 of file bytecodes.h.

◆ JUMP_TOBOOLEAN_CONDITIONAL_IMMEDIATE_BYTECODE_LIST

#define JUMP_TOBOOLEAN_CONDITIONAL_IMMEDIATE_BYTECODE_LIST ( V)
Value:
V(JumpIfToBooleanTrue) \
V(JumpIfToBooleanFalse)

Definition at line 514 of file bytecodes.h.

◆ JUMP_UNCONDITIONAL_BYTECODE_LIST

#define JUMP_UNCONDITIONAL_BYTECODE_LIST ( V)
Value:
JUMP_UNCONDITIONAL_CONSTANT_BYTECODE_LIST(V)

Definition at line 558 of file bytecodes.h.

◆ JUMP_UNCONDITIONAL_CONSTANT_BYTECODE_LIST

#define JUMP_UNCONDITIONAL_CONSTANT_BYTECODE_LIST ( V)
Value:
V(JumpConstant)

Definition at line 512 of file bytecodes.h.

◆ JUMP_UNCONDITIONAL_IMMEDIATE_BYTECODE_LIST

#define JUMP_UNCONDITIONAL_IMMEDIATE_BYTECODE_LIST ( V)
Value:
V(JumpLoop) \
V(Jump)

Definition at line 508 of file bytecodes.h.

◆ OR_BYTECODE [1/2]

#define OR_BYTECODE ( NAME)
Value:
|| bytecode == Bytecode::k##NAME
#define NAME(feat,...)

◆ OR_BYTECODE [2/2]

#define OR_BYTECODE ( NAME)
Value:
|| bytecode == Bytecode::k##NAME

◆ RETURN_BYTECODE_LIST

#define RETURN_BYTECODE_LIST ( V)
Value:
V(Return) \
V(SuspendGenerator)

Definition at line 575 of file bytecodes.h.

◆ SHORT_STAR_BYTECODE_LIST

#define SHORT_STAR_BYTECODE_LIST ( V)
Value:
V(Star15, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star14, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star13, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star12, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star11, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star10, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star9, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star8, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star7, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star6, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star5, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star4, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star3, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star2, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star1, ImplicitRegisterUse::kReadAccumulatorWriteShortStar) \
V(Star0, ImplicitRegisterUse::kReadAccumulatorWriteShortStar)

Definition at line 24 of file bytecodes.h.

◆ UNCONDITIONAL_THROW_BYTECODE_LIST

#define UNCONDITIONAL_THROW_BYTECODE_LIST ( V)
Value:
V(Throw) \
V(ReThrow)

Definition at line 579 of file bytecodes.h.