CACAO
Data Structures | Functions | Variables
cacao::jit::compiler2::aarch64 Namespace Reference

Data Structures

class  Aarch64
 
class  Aarch64LoweringVisitor
 
class  Cond
 
class  Reg
 
class  Shift
 
class  Emitter
 
struct  SrcOp
 
struct  DstOp
 
struct  BaseOp
 
struct  IdxOp
 
class  AArch64Instruction
 
class  MovImmInst
 
class  MovInst
 
class  StoreInst
 
class  LoadInst
 
class  DsegAddrInst
 
class  AddInst
 
class  SubInst
 
class  MulInst
 
class  MulSubInst
 
class  DivInst
 
class  NegInst
 
class  AndInst
 
class  FCmpInst
 
class  FMovInst
 
class  FAddInst
 
class  FDivInst
 
class  FMulInst
 
class  FSubInst
 
class  FNegInst
 
class  JumpInst
 
class  CmpInst
 
class  CSelInst
 
class  CondJumpInst
 
class  EnterInst
 
class  LeaveInst
 
class  RetInst
 
class  IntToFpInst
 
class  FcvtInst
 
class  IntToLongInst
 
class  LongToIntInst
 
class  IntegerToByteInst
 
class  IntToCharInst
 
class  IntegerToShortInst
 
class  PatchInst
 
class  CallInst
 
class  TrapInst
 
class  CondTrapInst
 
class  MachineMethodDescriptor
 
class  Aarch64Register
 
class  NativeRegister
 This represents a machine register usage. More...
 
class  GPRegister
 
class  FPRegister
 

Functions

static void emitRaw (CodeMemory *cm, u4 inst)
 
template<>
Immediatecast_to< Immediate > (MachineOperand *op)
 
OStreamoperator<< (OStream &os, const MachineMethodDescriptor &mmd)
 
OStreamoperator<< (OStream &os, const MachineMethodDescriptor *mmd)
 
template<class A , class B >
A * cast_to (B *)
 
template<class A , A >
A * cast_to (A *a)
 
template<>
Aarch64Registercast_to< Aarch64Register > (MachineOperand *op)
 

Variables

const u1 kStackSlotSize = 8
 
GPRegister R0 ("R0", 0, 0 *8, 8)
 
GPRegister R1 ("R1", 1, 1 *8, 8)
 
GPRegister R2 ("R2", 2, 2 *8, 8)
 
GPRegister R3 ("R3", 3, 3 *8, 8)
 
GPRegister R4 ("R4", 4, 4 *8, 8)
 
GPRegister R5 ("R5", 5, 5 *8, 8)
 
GPRegister R6 ("R6", 6, 6 *8, 8)
 
GPRegister R7 ("R7", 7, 7 *8, 8)
 
GPRegister R8 ("R8", 8, 8 *8, 8)
 
GPRegister R9 ("R9", 9, 9 *8, 8)
 
GPRegister R10 ("R10", 10, 10 *8, 8)
 
GPRegister R11 ("R11", 11, 11 *8, 8)
 
GPRegister R12 ("R12", 12, 12 *8, 8)
 
GPRegister R13 ("R13", 13, 13 *8, 8)
 
GPRegister R14 ("R14", 14, 14 *8, 8)
 
GPRegister R15 ("R15", 15, 15 *8, 8)
 
GPRegister R16 ("R16", 16, 16 *8, 8)
 
GPRegister R17 ("R17", 17, 17 *8, 8)
 
GPRegister R18 ("R18", 18, 18 *8, 8)
 
GPRegister R19 ("R19", 19, 19 *8, 8)
 
GPRegister R20 ("R20", 20, 20 *8, 8)
 
GPRegister R21 ("R21", 21, 21 *8, 8)
 
GPRegister R22 ("R22", 22, 22 *8, 8)
 
GPRegister R23 ("R23", 23, 23 *8, 8)
 
GPRegister R24 ("R24", 24, 24 *8, 8)
 
GPRegister R25 ("R25", 25, 25 *8, 8)
 
GPRegister R26 ("R26", 26, 26 *8, 8)
 
GPRegister R27 ("R27", 27, 27 *8, 8)
 
GPRegister R28 ("R28", 28, 28 *8, 8)
 
GPRegister R29 ("R29", 29, 29 *8, 8)
 
GPRegister R30 ("R30", 30, 30 *8, 8)
 
GPRegister SP ("SP", 31, 31 *8, 8)
 
GPRegisterIntegerArgumentRegisters []
 
GPRegisterIntegerCallerSavedRegisters []
 
std::size_t IntegerCallerSavedRegistersSize = 17
 
FPRegister V0 ("V0", 0, 0 *16, 16)
 
FPRegister V1 ("V1", 1, 1 *16, 16)
 
FPRegister V2 ("V2", 2, 2 *16, 16)
 
FPRegister V3 ("V3", 3, 3 *16, 16)
 
FPRegister V4 ("V4", 4, 4 *16, 16)
 
FPRegister V5 ("V5", 5, 5 *16, 16)
 
FPRegister V6 ("V6", 6, 6 *16, 16)
 
FPRegister V7 ("V7", 7, 7 *16, 16)
 
FPRegister V8 ("V8", 8, 8 *16, 16)
 
FPRegister V9 ("V9", 9, 9 *16, 16)
 
FPRegister V10 ("V10", 10, 10 *16, 16)
 
FPRegister V11 ("V11", 11, 11 *16, 16)
 
FPRegister V12 ("V12", 12, 12 *16, 16)
 
FPRegister V13 ("V13", 13, 13 *16, 16)
 
FPRegister V14 ("V14", 14, 14 *16, 16)
 
FPRegister V15 ("V15", 15, 15 *16, 16)
 
FPRegister V16 ("V16", 16, 16 *16, 16)
 
FPRegister V17 ("V17", 17, 17 *16, 16)
 
FPRegister V18 ("V18", 18, 18 *16, 16)
 
FPRegister V19 ("V19", 19, 19 *16, 16)
 
FPRegister V20 ("V20", 20, 20 *16, 16)
 
FPRegister V21 ("V21", 21, 21 *16, 16)
 
FPRegister V22 ("V22", 22, 22 *16, 16)
 
FPRegister V23 ("V23", 23, 23 *16, 16)
 
FPRegister V24 ("V24", 24, 24 *16, 16)
 
FPRegister V25 ("V25", 25, 25 *16, 16)
 
FPRegister V26 ("V26", 26, 26 *16, 16)
 
FPRegister V27 ("V27", 27, 27 *16, 16)
 
FPRegister V28 ("V28", 28, 28 *16, 16)
 
FPRegister V29 ("V29", 29, 29 *16, 16)
 
FPRegister V30 ("V30", 30, 30 *16, 16)
 
FPRegister V31 ("V31", 31, 31 *16, 16)
 
FPRegisterFloatArgumentRegisters []
 
FPRegisterFloatCallerSavedRegisters []
 
std::size_t FloatCallerSavedRegistersSize = 24
 
const std::size_t IntegerArgumentRegisterSize = 8
 
const std::size_t FloatArgumentRegisterSize = 8
 

Function Documentation

template<class A , class B >
A* cacao::jit::compiler2::aarch64::cast_to ( B *  )
inline
template<class A , A >
A* cacao::jit::compiler2::aarch64::cast_to ( A *  a)
inline

Definition at line 193 of file Aarch64Register.hpp.

template<>
Aarch64Register* cacao::jit::compiler2::aarch64::cast_to< Aarch64Register > ( MachineOperand *  op)
inline

Definition at line 199 of file Aarch64Register.hpp.

template<>
Immediate* cacao::jit::compiler2::aarch64::cast_to< Immediate > ( MachineOperand *  op)
inline

Definition at line 63 of file Aarch64Instructions.hpp.

static void cacao::jit::compiler2::aarch64::emitRaw ( CodeMemory *  cm,
u4  inst 
)
static

Definition at line 43 of file Aarch64Instructions.cpp.

OStream & cacao::jit::compiler2::aarch64::operator<< ( OStream &  os,
const MachineMethodDescriptor &  mmd 
)

Definition at line 32 of file Aarch64MachineMethodDescriptor.cpp.

OStream& cacao::jit::compiler2::aarch64::operator<< ( OStream &  os,
const MachineMethodDescriptor *  mmd 
)
inline

Definition at line 89 of file Aarch64MachineMethodDescriptor.hpp.

Variable Documentation

FPRegister * cacao::jit::compiler2::aarch64::FloatArgumentRegisters
Initial value:
= {
&V0, &V1, &V2, &V3, &V4, &V5, &V6, &V7
}
FPRegister V2("V2", 2, 2 *16, 16)
FPRegister V5("V5", 5, 5 *16, 16)
FPRegister V3("V3", 3, 3 *16, 16)
FPRegister V0("V0", 0, 0 *16, 16)
FPRegister V1("V1", 1, 1 *16, 16)
FPRegister V6("V6", 6, 6 *16, 16)
FPRegister V7("V7", 7, 7 *16, 16)
FPRegister V4("V4", 4, 4 *16, 16)

Definition at line 114 of file Aarch64Register.cpp.

const std::size_t cacao::jit::compiler2::aarch64::FloatArgumentRegisterSize = 8

Definition at line 186 of file Aarch64Register.hpp.

FPRegister* cacao::jit::compiler2::aarch64::FloatCallerSavedRegisters[]
Initial value:
= {
&V0, &V1, &V2, &V3, &V4, &V5, &V6, &V7, &V16, &V17, &V18, &V19, &V20,
&V21, &V22, &V23, &V24, &V25, &V26, &V27, &V28, &V29, &V30, &V31
}
FPRegister V30("V30", 30, 30 *16, 16)
FPRegister V28("V28", 28, 28 *16, 16)
FPRegister V17("V17", 17, 17 *16, 16)
FPRegister V31("V31", 31, 31 *16, 16)
FPRegister V27("V27", 27, 27 *16, 16)
FPRegister V2("V2", 2, 2 *16, 16)
FPRegister V23("V23", 23, 23 *16, 16)
FPRegister V22("V22", 22, 22 *16, 16)
FPRegister V19("V19", 19, 19 *16, 16)
FPRegister V5("V5", 5, 5 *16, 16)
FPRegister V18("V18", 18, 18 *16, 16)
FPRegister V3("V3", 3, 3 *16, 16)
FPRegister V0("V0", 0, 0 *16, 16)
FPRegister V29("V29", 29, 29 *16, 16)
FPRegister V26("V26", 26, 26 *16, 16)
FPRegister V16("V16", 16, 16 *16, 16)
FPRegister V1("V1", 1, 1 *16, 16)
FPRegister V6("V6", 6, 6 *16, 16)
FPRegister V20("V20", 20, 20 *16, 16)
FPRegister V7("V7", 7, 7 *16, 16)
FPRegister V24("V24", 24, 24 *16, 16)
FPRegister V4("V4", 4, 4 *16, 16)
FPRegister V25("V25", 25, 25 *16, 16)
FPRegister V21("V21", 21, 21 *16, 16)

Definition at line 119 of file Aarch64Register.cpp.

std::size_t cacao::jit::compiler2::aarch64::FloatCallerSavedRegistersSize = 24

Definition at line 123 of file Aarch64Register.cpp.

GPRegister * cacao::jit::compiler2::aarch64::IntegerArgumentRegisters
Initial value:
= {
&R0, &R1, &R2, &R3, &R4, &R5, &R6, &R7
}
#define R3
Definition: md-abi.hpp:34
#define R2
Definition: md-abi.hpp:33
#define R0
Definition: md-abi.hpp:31
#define R7
Definition: md-abi.hpp:38
#define R5
Definition: md-abi.hpp:36
#define R1
Definition: md-abi.hpp:32
#define R4
Definition: md-abi.hpp:35
#define R6
Definition: md-abi.hpp:37

Definition at line 71 of file Aarch64Register.cpp.

const std::size_t cacao::jit::compiler2::aarch64::IntegerArgumentRegisterSize = 8

Definition at line 183 of file Aarch64Register.hpp.

GPRegister* cacao::jit::compiler2::aarch64::IntegerCallerSavedRegisters[]
Initial value:
= {
&R0, &R1, &R2, &R3, &R4, &R5, &R6, &R7, &R8, &R10, &R11, &R12,
&R13, &R14, &R15, &R16, &R17
}
#define R15
Definition: md-abi.hpp:46
#define R3
Definition: md-abi.hpp:34
#define R2
Definition: md-abi.hpp:33
#define R12
Definition: md-abi.hpp:43
#define R10
Definition: md-abi.hpp:41
#define R0
Definition: md-abi.hpp:31
#define R11
Definition: md-abi.hpp:42
#define R7
Definition: md-abi.hpp:38
GPRegister R17("R17", 17, 17 *8, 8)
#define R14
Definition: md-abi.hpp:45
#define R5
Definition: md-abi.hpp:36
#define R8
Definition: md-abi.hpp:39
#define R1
Definition: md-abi.hpp:32
GPRegister R16("R16", 16, 16 *8, 8)
#define R4
Definition: md-abi.hpp:35
#define R13
Definition: md-abi.hpp:44
#define R6
Definition: md-abi.hpp:37

Definition at line 75 of file Aarch64Register.cpp.

std::size_t cacao::jit::compiler2::aarch64::IntegerCallerSavedRegistersSize = 17

Definition at line 79 of file Aarch64Register.cpp.

const u1 cacao::jit::compiler2::aarch64::kStackSlotSize = 8

Definition at line 39 of file Aarch64Instructions.hpp.

GPRegister cacao::jit::compiler2::aarch64::R0

Definition at line 117 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R1

Definition at line 118 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R10

Definition at line 127 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R11

Definition at line 128 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R12

Definition at line 129 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R13

Definition at line 130 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R14

Definition at line 131 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R15

Definition at line 132 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R16

Definition at line 133 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R17

Definition at line 134 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R18

Definition at line 135 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R19

Definition at line 136 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R2

Definition at line 119 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R20

Definition at line 137 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R21

Definition at line 138 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R22

Definition at line 139 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R23

Definition at line 140 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R24

Definition at line 141 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R25

Definition at line 142 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R26

Definition at line 143 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R27

Definition at line 144 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R28

Definition at line 145 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R29

Definition at line 146 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R3

Definition at line 120 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R30

Definition at line 147 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R4

Definition at line 121 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R5

Definition at line 122 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R6

Definition at line 123 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R7

Definition at line 124 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R8

Definition at line 125 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::R9

Definition at line 126 of file Aarch64Register.hpp.

GPRegister cacao::jit::compiler2::aarch64::SP

Definition at line 148 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V0

Definition at line 150 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V1

Definition at line 151 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V10

Definition at line 160 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V11

Definition at line 161 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V12

Definition at line 162 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V13

Definition at line 163 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V14

Definition at line 164 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V15

Definition at line 165 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V16

Definition at line 166 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V17

Definition at line 167 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V18

Definition at line 168 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V19

Definition at line 169 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V2

Definition at line 152 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V20

Definition at line 170 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V21

Definition at line 171 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V22

Definition at line 172 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V23

Definition at line 173 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V24

Definition at line 174 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V25

Definition at line 175 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V26

Definition at line 176 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V27

Definition at line 177 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V28

Definition at line 178 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V29

Definition at line 179 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V3

Definition at line 153 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V30

Definition at line 180 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V31

Definition at line 181 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V4

Definition at line 154 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V5

Definition at line 155 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V6

Definition at line 156 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V7

Definition at line 157 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V8

Definition at line 158 of file Aarch64Register.hpp.

FPRegister cacao::jit::compiler2::aarch64::V9

Definition at line 159 of file Aarch64Register.hpp.