v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
assembler-arm64.h File Reference
#include <list>
#include <map>
#include "globals.h"
#include "utils.h"
#include "assembler.h"
#include "serialize.h"
#include "arm64/instructions-arm64.h"
#include "arm64/cpu-arm64.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.

Data Structures

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

Namespaces

 v8
 
 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

 STATIC_ASSERT (sizeof(CPURegister)==sizeof(Register))
 
 INITIALIZE_REGISTER (Register, NoReg, 0, 0, CPURegister::kNoRegister)
 
 INITIALIZE_REGISTER (FPRegister, NoFPReg, 0, 0, CPURegister::kNoRegister)
 
 INITIALIZE_REGISTER (CPURegister, NoCPUReg, 0, 0, CPURegister::kNoRegister)
 
 INITIALIZE_REGISTER (Register, no_reg, 0, 0, CPURegister::kNoRegister)
 
 INITIALIZE_REGISTER (Register, wcsp, kSPRegInternalCode, kWRegSizeInBits, CPURegister::kRegister)
 
 INITIALIZE_REGISTER (Register, csp, kSPRegInternalCode, kXRegSizeInBits, CPURegister::kRegister)
 
 ALIAS_REGISTER (Register, ip0, x16)
 
 ALIAS_REGISTER (Register, ip1, x17)
 
 ALIAS_REGISTER (Register, wip0, w16)
 
 ALIAS_REGISTER (Register, wip1, w17)
 
 ALIAS_REGISTER (Register, root, x26)
 
 ALIAS_REGISTER (Register, rr, x26)
 
 ALIAS_REGISTER (Register, cp, x27)
 
 STATIC_ASSERT (kJSSPCode==28)
 
 ALIAS_REGISTER (Register, jssp, x28)
 
 ALIAS_REGISTER (Register, wjssp, w28)
 
 ALIAS_REGISTER (Register, fp, x29)
 
 ALIAS_REGISTER (Register, lr, x30)
 
 ALIAS_REGISTER (Register, xzr, x31)
 
 ALIAS_REGISTER (Register, wzr, w31)
 
 ALIAS_REGISTER (FPRegister, fp_zero, d15)
 
 ALIAS_REGISTER (FPRegister, crankshaft_fp_scratch, d30)
 
 ALIAS_REGISTER (FPRegister, fp_scratch, d31)
 
Register GetAllocatableRegisterThatIsNotOneOf (Register reg1, Register reg2=NoReg, Register reg3=NoReg, Register reg4=NoReg)
 
bool 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 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

const int kSmiShift = kSmiTagSize + kSmiShiftSize
 
const uint64_t kSmiShiftMask = (1UL << kSmiShift) - 1
 

Macro Definition Documentation

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

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

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

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

#define DEFINE_REGISTERS (   N)
Value:
INITIALIZE_REGISTER(Register, w##N, N, \
kWRegSizeInBits, CPURegister::kRegister); \
INITIALIZE_REGISTER(Register, x##N, N, \
kXRegSizeInBits, CPURegister::kRegister);
const unsigned kXRegSizeInBits
const unsigned kWRegSizeInBits
#define INITIALIZE_REGISTER(register_class, name, code, size, type)

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

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

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

#define kCalleeSaved   CPURegList::GetCalleeSaved()

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

#define kCalleeSavedFP   CPURegList::GetCalleeSavedFP()

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

#define kCallerSaved   CPURegList::GetCallerSaved()

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

#define kCallerSavedFP   CPURegList::GetCallerSavedFP()

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

#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 48 of file assembler-arm64.h.