v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
register-riscv.h File Reference
Include dependency graph for register-riscv.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::VRegister
 
class  v8::internal::FPURegister
 

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 DOUBLE_REGISTERS(V)
 
#define FLOAT_REGISTERS   DOUBLE_REGISTERS
 
#define VECTOR_REGISTERS(V)
 
#define ALLOCATABLE_SIMD128_REGISTERS(V)
 
#define ALLOCATABLE_DOUBLE_REGISTERS(V)
 
#define REGISTER_CODE(R)
 
#define DECLARE_REGISTER(R)
 
#define REGISTER_CODE(R)
 
#define REGISTER_CODE(R)
 
#define DECLARE_DOUBLE_REGISTER(R)
 
#define DECLARE_VECTOR_REGISTER(R)
 

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::VRegisterCode { v8::internal::kVRAfterLast }
 

Functions

constexpr int v8::internal::ArgumentPaddingSlots (int argument_count)
 
int v8::internal::ToNumber (Register reg)
 
Register v8::internal::ToRegister (int num)
 
Register v8::internal::ReassignRegister (Register &source)
 

Variables

const int v8::internal::kUndefIndex = -1
 
const int v8::internal::kSafepointRegisterStackIndexMap [kNumRegs]
 
constexpr bool v8::internal::kPadArguments = false
 
constexpr Register v8::internal::padreg = t6
 
constexpr DoubleRegister v8::internal::kSingleRegZero = fs10
 
constexpr Register v8::internal::kSimulatorBreakArgument = t6
 
constexpr Register v8::internal::kMaglevFlagsRegister = t6
 
constexpr VRegister v8::internal::kSimd128ScratchReg2 = v23
 
constexpr VRegister v8::internal::kSimd128ScratchReg3 = v8
 

Macro Definition Documentation

◆ ALLOCATABLE_DOUBLE_REGISTERS

#define ALLOCATABLE_DOUBLE_REGISTERS ( V)
Value:
V(ft1) V(ft2) V(ft3) V(ft4) V(ft5) V(ft6) V(ft7) V(ft8) \
V(ft9) V(ft10) V(ft11) V(fa0) V(fa1) V(fa2) V(fa3) V(fa4) V(fa5) \
V(fa6) V(fa7)
#define V(Name)

Definition at line 64 of file register-riscv.h.

◆ ALLOCATABLE_GENERAL_REGISTERS

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

Definition at line 41 of file register-riscv.h.

◆ ALLOCATABLE_SIMD128_REGISTERS

#define ALLOCATABLE_SIMD128_REGISTERS ( V)
Value:
V(v1) V(v2) V(v3) V(v4) V(v5) V(v6) V(v7) \
V(v10) V(v11) V(v12) V(v13) V(v14) V(v15) V(v16) \
V(v17) V(v18) V(v19) V(v20) V(v21) V(v22) V(v26) \
V(v27) V(v28) V(v29) V(v30) V(v31)

Definition at line 58 of file register-riscv.h.

◆ ALWAYS_ALLOCATABLE_GENERAL_REGISTERS

#define ALWAYS_ALLOCATABLE_GENERAL_REGISTERS ( V)
Value:
V(a0) V(a1) V(a2) V(a3) \
V(a4) V(a5) V(a6) V(a7) V(t0) \
V(t1) V(t2) V(t4) V(s7) V(s8) V(s9) V(s10)

Definition at line 30 of file register-riscv.h.

◆ DECLARE_DOUBLE_REGISTER

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

Definition at line 243 of file register-riscv.h.

◆ DECLARE_REGISTER

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

Definition at line 165 of file register-riscv.h.

◆ DECLARE_VECTOR_REGISTER

#define DECLARE_VECTOR_REGISTER ( R)
Value:
constexpr VRegister R = VRegister::from_code(kVRCode_##R);

Definition at line 250 of file register-riscv.h.

◆ DOUBLE_REGISTERS

#define DOUBLE_REGISTERS ( V)
Value:
V(ft0) V(ft1) V(ft2) V(ft3) V(ft4) V(ft5) V(ft6) V(ft7) \
V(fs0) V(fs1) V(fa0) V(fa1) V(fa2) V(fa3) V(fa4) V(fa5) \
V(fa6) V(fa7) V(fs2) V(fs3) V(fs4) V(fs5) V(fs6) V(fs7) \
V(fs8) V(fs9) V(fs10) V(fs11) V(ft8) V(ft9) V(ft10) V(ft11)

Definition at line 45 of file register-riscv.h.

◆ FLOAT_REGISTERS

#define FLOAT_REGISTERS   DOUBLE_REGISTERS

Definition at line 51 of file register-riscv.h.

◆ GENERAL_REGISTERS

#define GENERAL_REGISTERS ( V)
Value:
V(zero_reg) V(ra) V(sp) V(gp) V(tp) V(t0) V(t1) V(t2) \
V(fp) V(s1) V(a0) V(a1) V(a2) V(a3) V(a4) V(a5) \
V(a6) V(a7) V(s2) V(s3) V(s4) V(s5) V(s6) V(s7) V(s8) V(s9) \
V(s10) V(s11) V(t3) V(t4) V(t5) V(t6)

Definition at line 16 of file register-riscv.h.

◆ MAYBE_ALLOCATABLE_GENERAL_REGISTERS

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

Definition at line 38 of file register-riscv.h.

◆ REGISTER_CODE [1/3]

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

Definition at line 139 of file register-riscv.h.

◆ REGISTER_CODE [2/3]

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

Definition at line 139 of file register-riscv.h.

◆ REGISTER_CODE [3/3]

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

Definition at line 139 of file register-riscv.h.

◆ VECTOR_REGISTERS

#define VECTOR_REGISTERS ( V)
Value:
V(v0) V(v1) V(v2) V(v3) V(v4) V(v5) V(v6) V(v7) \
V(v8) V(v9) V(v10) V(v11) V(v12) V(v13) V(v14) V(v15) \
V(v16) V(v17) V(v18) V(v19) V(v20) V(v21) V(v22) V(v23) \
V(v24) V(v25) V(v26) V(v27) V(v28) V(v29) V(v30) V(v31)

Definition at line 52 of file register-riscv.h.