v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
instruction-codes.h File Reference
Include dependency graph for instruction-codes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

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

Macros

#define TARGET_ARCH_OPCODE_LIST(V)
 
#define TARGET_ADDRESSING_MODE_LIST(V)
 
#define COMMON_ARCH_OPCODE_WITH_MEMORY_ACCESS_MODE_LIST(V)
 
#define COMMON_ARCH_OPCODE_LIST(V)
 
#define ARCH_OPCODE_LIST(V)
 
#define DECLARE_ARCH_OPCODE(Name)
 
#define COUNT_ARCH_OPCODE(Name)
 
#define ADDRESSING_MODE_LIST(V)
 
#define DECLARE_ADDRESSING_MODE(Name)
 
#define COUNT_ADDRESSING_MODE(Name)
 

Typedefs

using v8::internal::compiler::InstructionCode = uint32_t
 
using v8::internal::compiler::ArchOpcodeField = base::BitField<ArchOpcode, 0, 9>
 
using v8::internal::compiler::AddressingModeField = ArchOpcodeField::Next<AddressingMode, 5>
 
using v8::internal::compiler::FlagsModeField = AddressingModeField::Next<FlagsMode, 3>
 
using v8::internal::compiler::FlagsConditionField = FlagsModeField::Next<FlagsCondition, 5>
 
using v8::internal::compiler::AtomicWidthField = FlagsConditionField::Next<AtomicWidth, 2>
 
using v8::internal::compiler::AtomicMemoryOrderField = AtomicWidthField::Next<AtomicMemoryOrder, 2>
 
using v8::internal::compiler::AtomicStoreRecordWriteModeField
 
using v8::internal::compiler::RecordWriteModeField = FlagsConditionField::Next<RecordWriteMode, 3>
 
using v8::internal::compiler::LaneSizeField = FlagsConditionField::Next<int, 8>
 
using v8::internal::compiler::AccessModeField
 
using v8::internal::compiler::DeoptImmedArgsCountField = FlagsConditionField::Next<int, 2>
 
using v8::internal::compiler::DeoptFrameStateOffsetField = DeoptImmedArgsCountField::Next<int, 8>
 
using v8::internal::compiler::ParamField = FlagsConditionField::Next<int, 5>
 
using v8::internal::compiler::FPParamField = ParamField::Next<int, 5>
 
using v8::internal::compiler::MiscField = FlagsConditionField::Next<int, 10>
 

Enumerations

enum class  v8::internal::compiler::RecordWriteMode {
  v8::internal::compiler::kValueIsMap , v8::internal::compiler::kValueIsPointer , v8::internal::compiler::kValueIsIndirectPointer , v8::internal::compiler::kValueIsEphemeronKey ,
  v8::internal::compiler::kValueIsAny
}
 
enum  v8::internal::compiler::ArchOpcode { v8::internal::compiler::kLastArchOpcode = -1 ARCH_OPCODE_LIST(COUNT_ARCH_OPCODE) }
 
enum  v8::internal::compiler::AddressingMode : uint8_t { v8::internal::compiler::kLastAddressingMode = -1 ADDRESSING_MODE_LIST(COUNT_ADDRESSING_MODE) }
 
enum  v8::internal::compiler::FlagsMode {
  v8::internal::compiler::kFlags_none = 0 , v8::internal::compiler::kFlags_branch = 1 , v8::internal::compiler::kFlags_deoptimize = 2 , v8::internal::compiler::kFlags_set = 3 ,
  v8::internal::compiler::kFlags_trap = 4 , v8::internal::compiler::kFlags_select = 5 , v8::internal::compiler::kFlags_conditional_set = 6 , v8::internal::compiler::kFlags_conditional_branch = 7
}
 
enum  v8::internal::compiler::FlagsCondition : uint8_t {
  v8::internal::compiler::kEqual , v8::internal::compiler::kNotEqual , v8::internal::compiler::kSignedLessThan , v8::internal::compiler::kSignedGreaterThanOrEqual ,
  v8::internal::compiler::kSignedLessThanOrEqual , v8::internal::compiler::kSignedGreaterThan , v8::internal::compiler::kUnsignedLessThan , v8::internal::compiler::kUnsignedGreaterThanOrEqual ,
  v8::internal::compiler::kUnsignedLessThanOrEqual , v8::internal::compiler::kUnsignedGreaterThan , v8::internal::compiler::kFloatLessThanOrUnordered , v8::internal::compiler::kFloatGreaterThanOrEqual ,
  v8::internal::compiler::kFloatLessThanOrEqual , v8::internal::compiler::kFloatGreaterThanOrUnordered , v8::internal::compiler::kFloatLessThan , v8::internal::compiler::kFloatGreaterThanOrEqualOrUnordered ,
  v8::internal::compiler::kFloatLessThanOrEqualOrUnordered , v8::internal::compiler::kFloatGreaterThan , v8::internal::compiler::kUnorderedEqual , v8::internal::compiler::kUnorderedNotEqual ,
  v8::internal::compiler::kOverflow , v8::internal::compiler::kNotOverflow , v8::internal::compiler::kPositiveOrZero , v8::internal::compiler::kNegative ,
  v8::internal::compiler::kIsNaN , v8::internal::compiler::kIsNotNaN
}
 
enum  v8::internal::compiler::MemoryAccessMode { v8::internal::compiler::kMemoryAccessDirect = 0 , v8::internal::compiler::kMemoryAccessProtectedMemOutOfBounds = 1 , v8::internal::compiler::kMemoryAccessProtectedNullDereference = 2 }
 
enum class  v8::internal::compiler::AtomicWidth { v8::internal::compiler::kWord32 , v8::internal::compiler::kWord64 }
 

Functions

RecordWriteMode v8::internal::compiler::WriteBarrierKindToRecordWriteMode (WriteBarrierKind write_barrier_kind)
 
V8_EXPORT_PRIVATE std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const ArchOpcode &ao)
 
V8_EXPORT_PRIVATE std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const AddressingMode &am)
 
V8_EXPORT_PRIVATE std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const FlagsMode &fm)
 
FlagsCondition v8::internal::compiler::NegateFlagsCondition (FlagsCondition condition)
 
FlagsCondition v8::internal::compiler::CommuteFlagsCondition (FlagsCondition condition)
 
V8_EXPORT_PRIVATE std::ostream & v8::internal::compiler::operator<< (std::ostream &os, const FlagsCondition &fc)
 
size_t v8::internal::compiler::AtomicWidthSize (AtomicWidth width)
 
bool v8::internal::compiler::HasMemoryAccessMode (ArchOpcode opcode)
 

Variables

static constexpr FlagsCondition v8::internal::compiler::kStackPointerGreaterThanCondition
 
static constexpr int v8::internal::compiler::kLazyDeoptOnThrowSentinel = -1
 

Macro Definition Documentation

◆ ADDRESSING_MODE_LIST

#define ADDRESSING_MODE_LIST ( V)
Value:
V(None) \
TARGET_ADDRESSING_MODE_LIST(V)
#define V(Name)

Definition at line 204 of file instruction-codes.h.

◆ ARCH_OPCODE_LIST

#define ARCH_OPCODE_LIST ( V)
Value:
TARGET_ARCH_OPCODE_LIST(V)
#define COMMON_ARCH_OPCODE_LIST(V)

Definition at line 184 of file instruction-codes.h.

◆ COMMON_ARCH_OPCODE_LIST

#define COMMON_ARCH_OPCODE_LIST ( V)

Definition at line 120 of file instruction-codes.h.

◆ COMMON_ARCH_OPCODE_WITH_MEMORY_ACCESS_MODE_LIST

#define COMMON_ARCH_OPCODE_WITH_MEMORY_ACCESS_MODE_LIST ( V)

Definition at line 70 of file instruction-codes.h.

◆ COUNT_ADDRESSING_MODE

#define COUNT_ADDRESSING_MODE ( Name)
Value:
+1

Definition at line 212 of file instruction-codes.h.

◆ COUNT_ARCH_OPCODE

#define COUNT_ARCH_OPCODE ( Name)
Value:
+1

Definition at line 192 of file instruction-codes.h.

◆ DECLARE_ADDRESSING_MODE

#define DECLARE_ADDRESSING_MODE ( Name)
Value:
kMode_##Name,

Definition at line 209 of file instruction-codes.h.

◆ DECLARE_ARCH_OPCODE

#define DECLARE_ARCH_OPCODE ( Name)
Value:
k##Name,

Definition at line 189 of file instruction-codes.h.

◆ TARGET_ADDRESSING_MODE_LIST

#define TARGET_ADDRESSING_MODE_LIST ( V)

Definition at line 30 of file instruction-codes.h.

◆ TARGET_ARCH_OPCODE_LIST

#define TARGET_ARCH_OPCODE_LIST ( V)

Definition at line 29 of file instruction-codes.h.