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

Go to the source code of this file.

Classes

class  v8::internal::Register
 
class  v8::internal::TaggedRegister
 
class  v8::internal::XMMRegister
 
class  v8::internal::YMMRegister
 

Namespaces

namespace  v8
 
namespace  v8::internal
 

Macros

#define GENERAL_REGISTERS(V)
 
#define ALWAYS_ALLOCATABLE_GENERAL_REGISTERS(V)
 
#define MAYBE_ALLOCATABLE_GENERAL_REGISTERS(V)
 
#define ALLOCATABLE_GENERAL_REGISTERS(V)
 
#define REGISTER_CODE(R)
 
#define DECLARE_REGISTER(R)
 
#define DOUBLE_REGISTERS(V)
 
#define FLOAT_REGISTERS   DOUBLE_REGISTERS
 
#define SIMD128_REGISTERS   DOUBLE_REGISTERS
 
#define ALLOCATABLE_DOUBLE_REGISTERS(V)
 
#define YMM_REGISTERS(V)
 
#define REGISTER_CODE(R)
 
#define REGISTER_CODE(R)
 
#define DECLARE_REGISTER(R)
 
#define DECLARE_REGISTER(R)
 

Typedefs

using v8::internal::Simd256Register = YMMRegister
 

Enumerations

enum  v8::internal::RegisterCode {
  v8::internal::kRegAfterLast , v8::internal::kRegAfterLast , v8::internal::kRegAfterLast , v8::internal::kRegAfterLast ,
  v8::internal::kRegAfterLast , v8::internal::kRegAfterLast , v8::internal::kRegAfterLast , v8::internal::kRegAfterLast ,
  v8::internal::kRegAfterLast
}
 
enum  v8::internal::DoubleRegisterCode {
  v8::internal::kDoubleAfterLast , v8::internal::kDoubleAfterLast , v8::internal::kDoubleAfterLast , v8::internal::kDoubleAfterLast ,
  v8::internal::kDoubleAfterLast , v8::internal::kDoubleAfterLast , v8::internal::kDoubleAfterLast , v8::internal::kDoubleAfterLast
}
 
enum  v8::internal::YMMRegisterCode { v8::internal::kYMMAfterLast }
 

Functions

 v8::internal::ASSERT_TRIVIALLY_COPYABLE (Register)
 
template<typename RegT >
RegT v8::internal::ReassignRegister (RegT &source)
 
constexpr int v8::internal::ArgumentPaddingSlots (int argument_count)
 
 v8::internal::ASSERT_TRIVIALLY_COPYABLE (XMMRegister)
 
 v8::internal::ASSERT_TRIVIALLY_COPYABLE (YMMRegister)
 

Variables

constexpr Register v8::internal::kScratchRegister = r10
 
constexpr YMMRegister v8::internal::kScratchSimd256Reg = ymm15
 

Macro Definition Documentation

◆ ALLOCATABLE_DOUBLE_REGISTERS

#define ALLOCATABLE_DOUBLE_REGISTERS ( V)
Value:
V(xmm0) \
V(xmm1) \
V(xmm2) \
V(xmm3) \
V(xmm4) \
V(xmm5) \
V(xmm6) \
V(xmm7) \
V(xmm8) \
V(xmm9) \
V(xmm10) \
V(xmm11) \
V(xmm12) \
V(xmm13) \
V(xmm14)
#define V(Name)

Definition at line 145 of file register-x64.h.

◆ ALLOCATABLE_GENERAL_REGISTERS

#define ALLOCATABLE_GENERAL_REGISTERS ( V)
Value:
MAYBE_ALLOCATABLE_GENERAL_REGISTERS(V)
#define ALWAYS_ALLOCATABLE_GENERAL_REGISTERS(V)

Definition at line 50 of file register-x64.h.

◆ ALWAYS_ALLOCATABLE_GENERAL_REGISTERS

#define ALWAYS_ALLOCATABLE_GENERAL_REGISTERS ( V)
Value:
V(rax) \
V(rbx) \
V(rdx) \
V(rcx) \
V(rsi) \
V(rdi) \
V(r8) \
V(r9) \
V(r11) \
V(r12) \
V(r15)

Definition at line 31 of file register-x64.h.

◆ DECLARE_REGISTER [1/3]

#define DECLARE_REGISTER ( R)
Value:
constexpr Register R = Register::from_code(kRegCode_##R);

Definition at line 99 of file register-x64.h.

◆ DECLARE_REGISTER [2/3]

#define DECLARE_REGISTER ( R)
Value:
constexpr DoubleRegister R = DoubleRegister::from_code(kDoubleCode_##R);

Definition at line 99 of file register-x64.h.

◆ DECLARE_REGISTER [3/3]

#define DECLARE_REGISTER ( R)
Value:
constexpr YMMRegister R = YMMRegister::from_code(kYMMCode_##R);

Definition at line 99 of file register-x64.h.

◆ DOUBLE_REGISTERS

#define DOUBLE_REGISTERS ( V)
Value:
V(xmm0) \
V(xmm1) \
V(xmm2) \
V(xmm3) \
V(xmm4) \
V(xmm5) \
V(xmm6) \
V(xmm7) \
V(xmm8) \
V(xmm9) \
V(xmm10) \
V(xmm11) \
V(xmm12) \
V(xmm13) \
V(xmm14) \
V(xmm15)

Definition at line 124 of file register-x64.h.

◆ FLOAT_REGISTERS

#define FLOAT_REGISTERS   DOUBLE_REGISTERS

Definition at line 142 of file register-x64.h.

◆ GENERAL_REGISTERS

#define GENERAL_REGISTERS ( V)
Value:
V(rax) \
V(rcx) \
V(rdx) \
V(rbx) \
V(rsp) \
V(rbp) \
V(rsi) \
V(rdi) \
V(r8) \
V(r9) \
V(r10) \
V(r11) \
V(r12) \
V(r13) \
V(r14) \
V(r15)

Definition at line 13 of file register-x64.h.

◆ MAYBE_ALLOCATABLE_GENERAL_REGISTERS

#define MAYBE_ALLOCATABLE_GENERAL_REGISTERS ( V)
Value:
V(r14)

Definition at line 47 of file register-x64.h.

◆ REGISTER_CODE [1/3]

#define REGISTER_CODE ( R)
Value:
kRegCode_##R,

Definition at line 55 of file register-x64.h.

◆ REGISTER_CODE [2/3]

#define REGISTER_CODE ( R)
Value:
kDoubleCode_##R,

Definition at line 55 of file register-x64.h.

◆ REGISTER_CODE [3/3]

#define REGISTER_CODE ( R)
Value:
kYMMCode_##R,

Definition at line 55 of file register-x64.h.

◆ SIMD128_REGISTERS

#define SIMD128_REGISTERS   DOUBLE_REGISTERS

Definition at line 143 of file register-x64.h.

◆ YMM_REGISTERS

#define YMM_REGISTERS ( V)
Value:
V(ymm0) \
V(ymm1) \
V(ymm2) \
V(ymm3) \
V(ymm4) \
V(ymm5) \
V(ymm6) \
V(ymm7) \
V(ymm8) \
V(ymm9) \
V(ymm10) \
V(ymm11) \
V(ymm12) \
V(ymm13) \
V(ymm14) \
V(ymm15)

Definition at line 162 of file register-x64.h.