V8 Project
assembler-arm64.h File Reference
#include <list>
#include <map>
#include <vector>
#include "src/arm64/instructions-arm64.h"
#include "src/assembler.h"
#include "src/globals.h"
#include "src/serialize.h"
#include "src/utils.h"
+ Include dependency graph for assembler-arm64.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  v8::internal::CPURegister
 
struct  v8::internal::Register
 
struct  v8::internal::FPRegister
 
class  v8::internal::CPURegList
 
class  v8::internal::Immediate
 
class  v8::internal::Operand
 
class  v8::internal::MemOperand
 
class  v8::internal::ConstPool
 
class  v8::internal::Assembler
 
class  v8::internal::Assembler::BlockConstPoolScope
 
class  v8::internal::Assembler::BlockPoolsScope
 
class  v8::internal::Assembler::FarBranchInfo
 
class  v8::internal::PatchingAssembler
 
class  v8::internal::BASE_EMBEDDED< Visitor >
 

Namespaces

 v8
 Debugger support for the V8 JavaScript engine.
 
 v8::internal
 

Macros

#define REGISTER_CODE_LIST(R)
 
#define INITIALIZE_REGISTER(register_class, name, code, size, type)    extern const register_class& name
 
#define ALIAS_REGISTER(register_class, alias, name)    extern const register_class& alias
 
#define DEFINE_REGISTERS(N)
 
#define DEFINE_FPREGISTERS(N)
 
#define kCalleeSaved   CPURegList::GetCalleeSaved()
 
#define kCalleeSavedFP   CPURegList::GetCalleeSavedFP()
 
#define kCallerSaved   CPURegList::GetCallerSaved()
 
#define kCallerSavedFP   CPURegList::GetCallerSavedFP()
 

Functions

 v8::internal::STATIC_ASSERT (sizeof(CPURegister)==sizeof(Register))
 
 v8::internal::INITIALIZE_REGISTER (Register, NoReg, 0, 0, CPURegister::kNoRegister)
 
 v8::internal::INITIALIZE_REGISTER (FPRegister, NoFPReg, 0, 0, CPURegister::kNoRegister)
 
 v8::internal::INITIALIZE_REGISTER (CPURegister, NoCPUReg, 0, 0, CPURegister::kNoRegister)
 
 v8::internal::INITIALIZE_REGISTER (Register, no_reg, 0, 0, CPURegister::kNoRegister)
 
 v8::internal::INITIALIZE_REGISTER (Register, wcsp, kSPRegInternalCode, kWRegSizeInBits, CPURegister::kRegister)
 
 v8::internal::INITIALIZE_REGISTER (Register, csp, kSPRegInternalCode, kXRegSizeInBits, CPURegister::kRegister)
 
 v8::internal::ALIAS_REGISTER (Register, ip0, x16)
 
 v8::internal::ALIAS_REGISTER (Register, ip1, x17)
 
 v8::internal::ALIAS_REGISTER (Register, wip0, w16)
 
 v8::internal::ALIAS_REGISTER (Register, wip1, w17)
 
 v8::internal::ALIAS_REGISTER (Register, root, x26)
 
 v8::internal::ALIAS_REGISTER (Register, rr, x26)
 
 v8::internal::ALIAS_REGISTER (Register, cp, x27)
 
 v8::internal::STATIC_ASSERT (kJSSPCode==28)
 
 v8::internal::ALIAS_REGISTER (Register, jssp, x28)
 
 v8::internal::ALIAS_REGISTER (Register, wjssp, w28)
 
 v8::internal::ALIAS_REGISTER (Register, fp, x29)
 
 v8::internal::ALIAS_REGISTER (Register, lr, x30)
 
 v8::internal::ALIAS_REGISTER (Register, xzr, x31)
 
 v8::internal::ALIAS_REGISTER (Register, wzr, w31)
 
 v8::internal::ALIAS_REGISTER (FPRegister, fp_zero, d15)
 
 v8::internal::ALIAS_REGISTER (FPRegister, crankshaft_fp_scratch, d29)
 
 v8::internal::ALIAS_REGISTER (FPRegister, fp_scratch, d30)
 
 v8::internal::ALIAS_REGISTER (FPRegister, fp_scratch1, d30)
 
 v8::internal::ALIAS_REGISTER (FPRegister, fp_scratch2, d31)
 
Register v8::internal::GetAllocatableRegisterThatIsNotOneOf (Register reg1, Register reg2=NoReg, Register reg3=NoReg, Register reg4=NoReg)
 
bool v8::internal::AreAliased (const CPURegister &reg1, const CPURegister &reg2, const CPURegister &reg3=NoReg, const CPURegister &reg4=NoReg, const CPURegister &reg5=NoReg, const CPURegister &reg6=NoReg, const CPURegister &reg7=NoReg, const CPURegister &reg8=NoReg)
 
bool v8::internal::AreSameSizeAndType (const CPURegister &reg1, const CPURegister &reg2, const CPURegister &reg3=NoCPUReg, const CPURegister &reg4=NoCPUReg, const CPURegister &reg5=NoCPUReg, const CPURegister &reg6=NoCPUReg, const CPURegister &reg7=NoCPUReg, const CPURegister &reg8=NoCPUReg)
 

Variables

static const int v8::internal::kRegListSizeInBits = sizeof(RegList) * kBitsPerByte
 
const int v8::internal::kSmiShift = kSmiTagSize + kSmiShiftSize
 
const uint64_t v8::internal::kSmiShiftMask = (1UL << kSmiShift) - 1
 

Macro Definition Documentation

◆ ALIAS_REGISTER

#define ALIAS_REGISTER (   register_class,
  alias,
  name 
)     extern const register_class& alias

Definition at line 344 of file assembler-arm64.h.

◆ DEFINE_FPREGISTERS

#define DEFINE_FPREGISTERS (   N)
Value:
INITIALIZE_REGISTER(FPRegister, s##N, N, \
kSRegSizeInBits, CPURegister::kFPRegister); \
INITIALIZE_REGISTER(FPRegister, d##N, N, \
kDRegSizeInBits, CPURegister::kFPRegister);
#define INITIALIZE_REGISTER(register_class, name, code, size, type)
const unsigned kDRegSizeInBits
const unsigned kSRegSizeInBits

Definition at line 371 of file assembler-arm64.h.

◆ DEFINE_REGISTERS

#define DEFINE_REGISTERS (   N)
Value:
INITIALIZE_REGISTER(Register, w##N, N, \
INITIALIZE_REGISTER(Register, x##N, N, \
const unsigned kXRegSizeInBits
const unsigned kWRegSizeInBits

Definition at line 358 of file assembler-arm64.h.

◆ INITIALIZE_REGISTER

#define INITIALIZE_REGISTER (   register_class,
  name,
  code,
  size,
  type 
)     extern const register_class& name

Definition at line 342 of file assembler-arm64.h.

◆ kCalleeSaved

#define kCalleeSaved   CPURegList::GetCalleeSaved()

Definition at line 599 of file assembler-arm64.h.

◆ kCalleeSavedFP

#define kCalleeSavedFP   CPURegList::GetCalleeSavedFP()

Definition at line 600 of file assembler-arm64.h.

◆ kCallerSaved

#define kCallerSaved   CPURegList::GetCallerSaved()

Definition at line 604 of file assembler-arm64.h.

◆ kCallerSavedFP

#define kCallerSavedFP   CPURegList::GetCallerSavedFP()

Definition at line 605 of file assembler-arm64.h.

◆ REGISTER_CODE_LIST

#define REGISTER_CODE_LIST (   R)
Value:
R(0) R(1) R(2) R(3) R(4) R(5) R(6) R(7) \
R(8) R(9) R(10) R(11) R(12) R(13) R(14) R(15) \
R(16) R(17) R(18) R(19) R(20) R(21) R(22) R(23) \
R(24) R(25) R(26) R(27) R(28) R(29) R(30) R(31)

Definition at line 25 of file assembler-arm64.h.