CACAO
|
Data Structures | |
class | X86_64 |
X86_64. More... | |
class | X86_64LoweringVisitor |
class | Cond |
x86_64 registers flags More... | |
struct | OpReg |
Opcode ref field. More... | |
struct | REX |
REX Prefix Builder. More... | |
class | CodeSegmentBuilder |
struct | InstructionEncoding |
struct | SrcOp |
Simple wrapper for the operand of an single operand x86_64 instruction. More... | |
struct | SrcMemOp |
struct | DstMemOp |
struct | Src1Op |
Simple wrapper for first operand of an x86_64 instruction. More... | |
struct | Src2Op |
Simple wrapper for second operand of an x86_64 instruction. More... | |
struct | DstSrc1Op |
Simple wrapper for first operand of an x86_64 instruction which is also used for the result. More... | |
struct | DstSrc2Op |
struct | DstSrcOp |
Simple wrapper for first operand of an x86_64 instruction which is also used for the result. More... | |
struct | DstOp |
Simple wrapper for destination of an x86_64 instruction. More... | |
class | ModRMOperand |
class | ModRMOperandDesc |
struct | DstModRM |
Simple wrapper for a ModRM destination operand. More... | |
struct | SrcModRM |
Simple wrapper for a ModRM source operand. More... | |
class | X86_64Instruction |
Superclass for general purpose register instruction. More... | |
class | GPInstruction |
Superclass for general purpose register instruction. More... | |
class | MoveInst |
Move super instruction. More... | |
class | ALUInstruction |
This abstract class represents a x86_64 ALU instruction. More... | |
class | AddInst |
class | OrInst |
class | AdcInst |
class | SbbInst |
class | AndInst |
class | SubInst |
class | XorInst |
class | CmpInst |
class | PatchInst |
class | EnterInst |
class | LeaveInst |
class | BreakInst |
class | IMulInst |
class | IMulImmInst |
class | IDivInst |
class | CDQInst |
class | RetInst |
class | NegInst |
class | CallInst |
class | MovInst |
class | MovModRMInst |
Load from pointer. More... | |
class | LEAInst |
class | MovSXInst |
Move with Sign-Extension. More... | |
class | MovDSEGInst |
Move data seg to register. More... | |
class | JumpInst |
class | CondJumpInst |
class | CondTrapInst |
class | CMovInst |
class | IndirectJumpInst |
class | CVTSI2SDInst |
Convert Dword Integer to Scalar Double-Precision FP Value. More... | |
class | CVTSI2SSInst |
Convert Dword Integer to Scalar Single-Precision FP Value. More... | |
class | CVTTSS2SIInst |
Convert with truncation Scalar Single-FP Value to DW Integer. More... | |
class | CVTTSD2SIInst |
class | CVTSS2SDInst |
class | CVTSD2SSInst |
class | FLDInst |
class | FSTPInst |
class | FFREEInst |
class | FINCSTPInst |
class | UCOMISInst |
class | UCOMISSInst |
class | UCOMISDInst |
class | XORPInst |
class | XORPSInst |
class | XORPDInst |
class | SSEAluInst |
SSE Alu Instruction. More... | |
class | SSEAluSDInst |
SSE Alu Instruction (Double-Precision) More... | |
class | SSEAluSSInst |
SSE Alu Instruction (Single-Precision) More... | |
class | AddSDInst |
Add Scalar Double-Precision Floating-Point Values. More... | |
class | MulSDInst |
Multiply Scalar Double-Precision Floating-Point Values. More... | |
class | SubSDInst |
Subtract Scalar Double-Precision Floating-Point Values. More... | |
class | DivSDInst |
Divide Scalar Double-Precision Floating-Point Values. More... | |
class | FPRemInst |
class | AddSSInst |
Add Scalar Single-Precision Floating-Point Values. More... | |
class | MulSSInst |
Multiply Scalar Single-Precision Floating-Point Values. More... | |
class | SubSSInst |
Subtract Scalar Single-Precision Floating-Point Values. More... | |
class | DivSSInst |
Divide Scalar Single-Precision Floating-Point Values. More... | |
class | MovSDInst |
class | MovImmSInst |
class | MovImmSDInst |
class | MovImmSSInst |
class | MovSSInst |
class | MachineMethodDescriptor |
MachineMethodDescriptor. More... | |
struct | IndexOp |
struct | BaseOp |
class | NativeAddress |
class | X86_64ModRMOperand |
class | X86_64Register |
x86_64 Register More... | |
class | FPUStackRegister |
class | NativeRegister |
This represents a machine register usage. More... | |
class | GPRegister |
class | SSERegister |
Variables | |
FPUStackRegister | ST0 (0) |
FPUStackRegister | ST1 (1) |
FPUStackRegister | ST2 (2) |
FPUStackRegister | ST3 (3) |
FPUStackRegister | ST4 (4) |
FPUStackRegister | ST5 (5) |
FPUStackRegister | ST6 (6) |
FPUStackRegister | ST7 (7) |
GPRegister | RAX ("RAX", 0x0, false, 0x0 *8, 8) |
GPRegister | RCX ("RCX", 0x1, false, 0x1 *8, 8) |
GPRegister | RDX ("RDX", 0x2, false, 0x2 *8, 8) |
GPRegister | RBX ("RBX", 0x3, false, 0x3 *8, 8) |
GPRegister | RSP ("RSP", 0x4, false, 0x4 *8, 8) |
GPRegister | RBP ("RBP", 0x5, false, 0x5 *8, 8) |
GPRegister | RSI ("RSI", 0x6, false, 0x6 *8, 8) |
GPRegister | RDI ("RDI", 0x7, false, 0x7 *8, 8) |
GPRegister | R8 ("R8", 0x0, true, 0x8 *8, 8) |
GPRegister | R9 ("R9", 0x1, true, 0x9 *8, 8) |
GPRegister | R10 ("R10", 0x2, true, 0xa *8, 8) |
GPRegister | R11 ("R11", 0x3, true, 0xb *8, 8) |
GPRegister | R12 ("R12", 0x4, true, 0xc *8, 8) |
GPRegister | R13 ("R13", 0x5, true, 0xd *8, 8) |
GPRegister | R14 ("R14", 0x6, true, 0xe *8, 8) |
GPRegister | R15 ("R15", 0x7, true, 0xf *8, 8) |
GPRegister * | IntegerArgumentRegisters [] |
GPRegister * | IntegerCallerSavedRegisters [] |
std::size_t | IntegerCallerSavedRegistersSize = 9 |
SSERegister | XMM0 ("XMM0", 0x0, false, 0x0 *16, 16) |
SSERegister | XMM1 ("XMM1", 0x1, false, 0x1 *16, 16) |
SSERegister | XMM2 ("XMM2", 0x2, false, 0x2 *16, 16) |
SSERegister | XMM3 ("XMM3", 0x3, false, 0x3 *16, 16) |
SSERegister | XMM4 ("XMM4", 0x4, false, 0x4 *16, 16) |
SSERegister | XMM5 ("XMM5", 0x5, false, 0x5 *16, 16) |
SSERegister | XMM6 ("XMM6", 0x6, false, 0x6 *16, 16) |
SSERegister | XMM7 ("XMM7", 0x7, false, 0x7 *16, 16) |
SSERegister | XMM8 ("XMM8", 0x0, true, 0x8 *16, 16) |
SSERegister | XMM9 ("XMM9", 0x1, true, 0x9 *16, 16) |
SSERegister | XMM10 ("XMM10", 0x2, true, 0xa *16, 16) |
SSERegister | XMM11 ("XMM11", 0x3, true, 0xb *16, 16) |
SSERegister | XMM12 ("XMM12", 0x4, true, 0xc *16, 16) |
SSERegister | XMM13 ("XMM13", 0x5, true, 0xd *16, 16) |
SSERegister | XMM14 ("XMM14", 0x6, true, 0xe *16, 16) |
SSERegister | XMM15 ("XMM15", 0x7, true, 0xf *16, 16) |
SSERegister * | FloatArgumentRegisters [] |
const unsigned | IntegerArgumentRegisterSize = 6 |
const unsigned | FloatArgumentRegisterSize = 8 |
void cacao::jit::compiler2::x86_64::add_CodeSegmentBuilder | ( | CodeMemory * | CM, |
const CodeSegmentBuilder & | CSB | ||
) |
Definition at line 266 of file X86_64EmitHelper.hpp.
|
inline |
|
inline |
Definition at line 44 of file X86_64Instructions.cpp.
|
inline |
Definition at line 297 of file X86_64EmitHelper.hpp.
|
inline |
Definition at line 122 of file X86_64Register.hpp.
|
inline |
Definition at line 274 of file X86_64EmitHelper.hpp.
|
inline |
Definition at line 184 of file X86_64ModRMOperand.hpp.
|
inline |
Definition at line 129 of file X86_64Register.hpp.
|
inline |
Definition at line 140 of file X86_64Register.hpp.
|
inline |
Definition at line 153 of file X86_64Register.hpp.
void cacao::jit::compiler2::x86_64::emit_nop | ( | CodeFragment | code, |
int | length | ||
) |
Definition at line 255 of file X86_64Instructions.cpp.
|
inline |
Definition at line 149 of file X86_64EmitHelper.hpp.
|
inline |
Definition at line 187 of file X86_64EmitHelper.hpp.
|
inline |
Definition at line 223 of file X86_64EmitHelper.hpp.
Definition at line 229 of file X86_64EmitHelper.hpp.
|
inline |
Definition at line 226 of file X86_64EmitHelper.hpp.
Definition at line 212 of file X86_64EmitHelper.hpp.
GPInstruction::OpEncoding cacao::jit::compiler2::x86_64::get_OpEncoding | ( | MachineOperand * | src1, |
MachineOperand * | src2, | ||
GPInstruction::OperandSize | op_size | ||
) |
Definition at line 67 of file X86_64Instructions.cpp.
GPInstruction::OperandSize cacao::jit::compiler2::x86_64::get_operand_size_from_Type | ( | Type::TypeID | type | ) |
Definition at line 161 of file X86_64Instructions.cpp.
GPInstruction::OperandSize cacao::jit::compiler2::x86_64::get_OperandSize_from_Type | ( | const Type::TypeID | type | ) |
Definition at line 49 of file X86_64Instructions.cpp.
|
inline |
Definition at line 95 of file X86_64EmitHelper.hpp.
|
inline |
Definition at line 118 of file X86_64EmitHelper.hpp.
|
inline |
Definition at line 447 of file X86_64Instructions.cpp.
|
inline |
Definition at line 191 of file X86_64EmitHelper.hpp.
OStream & cacao::jit::compiler2::x86_64::operator<< | ( | OStream & | OS, |
const MachineMethodDescriptor & | MMD | ||
) |
Definition at line 32 of file X86_64MachineMethodDescriptor.cpp.
|
inline |
Definition at line 90 of file X86_64MachineMethodDescriptor.hpp.
|
inline |
Definition at line 95 of file X86_64Register.hpp.
|
inline |
Definition at line 145 of file X86_64EmitHelper.hpp.
SSERegister * cacao::jit::compiler2::x86_64::FloatArgumentRegisters |
Definition at line 90 of file X86_64Register.cpp.
const unsigned cacao::jit::compiler2::x86_64::FloatArgumentRegisterSize = 8 |
Definition at line 206 of file X86_64Register.hpp.
GPRegister * cacao::jit::compiler2::x86_64::IntegerArgumentRegisters |
Definition at line 66 of file X86_64Register.cpp.
const unsigned cacao::jit::compiler2::x86_64::IntegerArgumentRegisterSize = 6 |
Definition at line 175 of file X86_64Register.hpp.
GPRegister* cacao::jit::compiler2::x86_64::IntegerCallerSavedRegisters[] |
Definition at line 69 of file X86_64Register.cpp.
std::size_t cacao::jit::compiler2::x86_64::IntegerCallerSavedRegistersSize = 9 |
Definition at line 71 of file X86_64Register.cpp.
GPRegister cacao::jit::compiler2::x86_64::R10 |
Definition at line 168 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::R11 |
Definition at line 169 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::R12 |
Definition at line 170 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::R13 |
Definition at line 171 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::R14 |
Definition at line 172 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::R15 |
Definition at line 173 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::R8 |
Definition at line 166 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::R9 |
Definition at line 167 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::RAX |
Definition at line 158 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::RBP |
Definition at line 163 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::RBX |
Definition at line 161 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::RCX |
Definition at line 159 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::RDI |
Definition at line 165 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::RDX |
Definition at line 160 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::RSI |
Definition at line 164 of file X86_64Register.hpp.
GPRegister cacao::jit::compiler2::x86_64::RSP |
Definition at line 162 of file X86_64Register.hpp.
FPUStackRegister cacao::jit::compiler2::x86_64::ST0 |
Definition at line 196 of file X86_64Register.hpp.
FPUStackRegister cacao::jit::compiler2::x86_64::ST1 |
Definition at line 197 of file X86_64Register.hpp.
FPUStackRegister cacao::jit::compiler2::x86_64::ST2 |
Definition at line 198 of file X86_64Register.hpp.
FPUStackRegister cacao::jit::compiler2::x86_64::ST3 |
Definition at line 199 of file X86_64Register.hpp.
FPUStackRegister cacao::jit::compiler2::x86_64::ST4 |
Definition at line 200 of file X86_64Register.hpp.
FPUStackRegister cacao::jit::compiler2::x86_64::ST5 |
Definition at line 201 of file X86_64Register.hpp.
FPUStackRegister cacao::jit::compiler2::x86_64::ST6 |
Definition at line 202 of file X86_64Register.hpp.
FPUStackRegister cacao::jit::compiler2::x86_64::ST7 |
Definition at line 203 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM0 |
Definition at line 178 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM1 |
Definition at line 179 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM10 |
Definition at line 188 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM11 |
Definition at line 189 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM12 |
Definition at line 190 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM13 |
Definition at line 191 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM14 |
Definition at line 192 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM15 |
Definition at line 193 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM2 |
Definition at line 180 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM3 |
Definition at line 181 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM4 |
Definition at line 182 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM5 |
Definition at line 183 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM6 |
Definition at line 184 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM7 |
Definition at line 185 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM8 |
Definition at line 186 of file X86_64Register.hpp.
SSERegister cacao::jit::compiler2::x86_64::XMM9 |
Definition at line 187 of file X86_64Register.hpp.