CACAO
|
Public Member Functions | |
Emitter () | |
void | sbfm (const Reg &rd, const Reg &rn, u1 immr, u1 imms) |
void | sxtw (const Reg &xd, const Reg &wn) |
void | sxtb (const Reg &rd, const Reg &rn) |
void | sxth (const Reg &rd, const Reg &rn) |
void | ubfm (const Reg &rd, const Reg &rn, u1 immr, u1 imms) |
void | uxth (const Reg &wd, const Reg &wn) |
void | ubfx (const Reg &wd, const Reg &wn) |
void | add (const Reg &rd, const Reg &rn, s2 imm) |
void | sub (const Reg &rd, const Reg &rn, s2 imm) |
void | subs (const Reg &rd, const Reg &rn, s2 imm) |
void | cmp (const Reg &rn, s2 imm) |
void | movn (const Reg &rd, u2 imm) |
void | movz (const Reg &rd, u2 imm) |
void | movk (const Reg &rd, u2 imm, u1 shift=0) |
void | bcond (u1 cond, s4 offset) |
void | b (s4 offset) |
void | blr (const Reg &rd) |
void | ldr (const Reg &rt, s4 offset) |
void | ldur (const Reg &rt, const Reg &rn, s2 imm=0) |
void | stur (const Reg &rt, const Reg &rn, s2 imm=0) |
void | ldr (const Reg &rt, const Reg &rn, s2 imm=0) |
void | str (const Reg &rt, const Reg &rn, s2 imm=0) |
void | ldr (const Reg &rt, const Reg &rn, const Reg &rm) |
void | add (const Reg &rd, const Reg &rn, const Reg &rm, Shift::SHIFT shift=Shift::LSL, u1 amount=0) |
void | sub (const Reg &rd, const Reg &rn, const Reg &rm) |
void | subs (const Reg &rd, const Reg &rn, const Reg &rm) |
void | neg (const Reg &rd, const Reg &rm) |
void | cmp (const Reg &rn, const Reg &rm) |
void | csel (const Reg &rd, const Reg &rn, const Reg &rm, Cond::COND cond) |
void | mul (const Reg &rd, const Reg &rn, const Reg &rm) |
void | madd (const Reg &rd, const Reg &rn, const Reg &rm, const Reg &ra) |
void | msub (const Reg &rd, const Reg &rn, const Reg &rm, const Reg &ra) |
void | nop () |
void | mov (const Reg &rd, const Reg &rm) |
void | andd (const Reg &rd, const Reg &rn, const Reg &rm) |
void | orr (const Reg &rd, const Reg &rn, const Reg &rm) |
void | sdiv (const Reg &rd, const Reg &rn, const Reg &rm) |
void | fcmp (const Reg &rn, const Reg &rm) |
void | fmov (const Reg &rd, const Reg &rn) |
void | fneg (const Reg &rd, const Reg &rn) |
void | fcvt (const Reg &rd, const Reg &rn) |
void | fadd (const Reg &rd, const Reg &rn, const Reg &rm) |
void | fdiv (const Reg &rd, const Reg &rn, const Reg &rm) |
void | fmul (const Reg &rd, const Reg &rn, const Reg &rm) |
void | fsub (const Reg &rd, const Reg &rn, const Reg &rm) |
void | scvtf (const Reg &rd, const Reg &rn) |
void | trap (const Reg &rd, int type) |
void | emit (CodeMemory *cm) |
void | emit (CodeFragment &cf) |
void | emitRaw (u4 instr) |
Private Types | |
typedef alloc::vector< u4 >::type | instruction_list |
Private Member Functions | |
template<typename T > | |
u4 | lsl (T a, u1 amount) |
void | add_subtract_immediate (u1 sf, u1 op, u1 s, u1 shift, s2 imm, u1 rn, u1 rd) |
void | bitfield (u1 sf, u1 opc, u1 n, u1 immr, u1 imms, u1 rn, u1 rd) |
void | move_wide_immediate (u1 sf, u1 opc, u1 hw, u2 imm, u1 rd) |
void | load_literal (u1 opc, u1 v, s4 imm, u1 rt) |
void | load_store_unscaled (u1 size, u1 v, u1 opc, s2 imm, u1 rn, u1 rt) |
void | load_store_register (u1 size, u1 v, u1 opc, u1 rm, u1 option, u1 s, u1 rn, u1 rt) |
void | load_store_unsigned (u1 size, u1 v, u1 opc, s2 imm, u1 rn, u1 rt) |
void | add_subtract_shifted_register (u1 sf, u1 opc, u1 s, u1 shift, u1 rm, u1 imm, u1 rn, u1 rd) |
void | conditional_select (u1 sf, u1 op, u1 s, u1 rm, u1 cond, u1 op2, u1 rn, u1 rd) |
void | data_processing_2_source (u1 sf, u1 s, u1 rm, u1 op, u1 rn, u1 rd) |
void | data_processing_3_source (u1 sf, u1 op54, u1 op31, u1 rm, u1 o0, u1 ra, u1 rn, u1 rd) |
void | logical_shifted_register (u1 sf, u1 opc, u1 n, u1 rm, u1 rn, u1 rd) |
void | fp_compare (u1 m, u1 s, u1 type, u1 rm, u1 op, u1 rn, u1 op2) |
void | fp_data_processing_1 (u1 m, u1 s, u1 type, u1 op, u1 rn, u1 rd) |
void | fp_data_processing_2 (u1 m, u1 s, u1 type, u1 rm, u1 op, u1 rn, u1 rd) |
void | conversion_fp_integer (u1 sf, u1 s, u1 type, u1 rmode, u1 op, u1 rn, u1 rd) |
void | trap_encode (u1 rd, s4 type) |
Private Attributes | |
instruction_list | instructions |
Definition at line 106 of file Aarch64Emitter.hpp.
|
private |
Definition at line 108 of file Aarch64Emitter.hpp.
|
inlineexplicit |
Definition at line 112 of file Aarch64Emitter.hpp.
Definition at line 118 of file Aarch64Emitter.cpp.
void cacao::jit::compiler2::aarch64::Emitter::add | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm, | ||
Shift::SHIFT | shift = Shift::LSL , |
||
u1 | amount = 0 |
||
) |
Definition at line 150 of file Aarch64Emitter.cpp.
|
inlineprivate |
Definition at line 204 of file Aarch64Emitter.hpp.
|
inlineprivate |
Definition at line 255 of file Aarch64Emitter.hpp.
void cacao::jit::compiler2::aarch64::Emitter::andd | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm | ||
) |
Definition at line 130 of file Aarch64Emitter.cpp.
Definition at line 139 of file Aarch64Emitter.hpp.
Definition at line 132 of file Aarch64Emitter.hpp.
|
inlineprivate |
Definition at line 212 of file Aarch64Emitter.hpp.
Definition at line 146 of file Aarch64Emitter.hpp.
Definition at line 126 of file Aarch64Emitter.hpp.
Definition at line 160 of file Aarch64Emitter.cpp.
|
inlineprivate |
Definition at line 263 of file Aarch64Emitter.hpp.
|
inlineprivate |
Definition at line 308 of file Aarch64Emitter.hpp.
void cacao::jit::compiler2::aarch64::Emitter::csel | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm, | ||
Cond::COND | cond | ||
) |
Definition at line 168 of file Aarch64Emitter.cpp.
|
inlineprivate |
Definition at line 271 of file Aarch64Emitter.hpp.
|
inlineprivate |
Definition at line 277 of file Aarch64Emitter.hpp.
void cacao::jit::compiler2::aarch64::Emitter::emit | ( | CodeMemory * | cm | ) |
Definition at line 53 of file Aarch64Emitter.cpp.
void cacao::jit::compiler2::aarch64::Emitter::emit | ( | CodeFragment & | cf | ) |
Definition at line 65 of file Aarch64Emitter.cpp.
Definition at line 198 of file Aarch64Emitter.hpp.
void cacao::jit::compiler2::aarch64::Emitter::fadd | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm | ||
) |
Definition at line 181 of file Aarch64Emitter.cpp.
Definition at line 197 of file Aarch64Emitter.cpp.
Definition at line 205 of file Aarch64Emitter.cpp.
void cacao::jit::compiler2::aarch64::Emitter::fdiv | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm | ||
) |
Definition at line 193 of file Aarch64Emitter.cpp.
Definition at line 201 of file Aarch64Emitter.cpp.
void cacao::jit::compiler2::aarch64::Emitter::fmul | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm | ||
) |
Definition at line 189 of file Aarch64Emitter.cpp.
Definition at line 177 of file Aarch64Emitter.cpp.
|
inlineprivate |
Definition at line 290 of file Aarch64Emitter.hpp.
|
inlineprivate |
Definition at line 296 of file Aarch64Emitter.hpp.
|
inlineprivate |
Definition at line 302 of file Aarch64Emitter.hpp.
void cacao::jit::compiler2::aarch64::Emitter::fsub | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm | ||
) |
Definition at line 185 of file Aarch64Emitter.cpp.
Definition at line 74 of file Aarch64Emitter.cpp.
Definition at line 86 of file Aarch64Emitter.cpp.
void cacao::jit::compiler2::aarch64::Emitter::ldr | ( | const Reg & | rt, |
const Reg & | rn, | ||
const Reg & | rm | ||
) |
Definition at line 94 of file Aarch64Emitter.cpp.
Definition at line 78 of file Aarch64Emitter.cpp.
|
inlineprivate |
Definition at line 224 of file Aarch64Emitter.hpp.
|
inlineprivate |
Definition at line 239 of file Aarch64Emitter.hpp.
|
inlineprivate |
Definition at line 232 of file Aarch64Emitter.hpp.
|
inlineprivate |
Definition at line 247 of file Aarch64Emitter.hpp.
|
inlineprivate |
Definition at line 284 of file Aarch64Emitter.hpp.
|
inlineprivate |
Definition at line 202 of file Aarch64Emitter.hpp.
void cacao::jit::compiler2::aarch64::Emitter::madd | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm, | ||
const Reg & | ra | ||
) |
Definition at line 142 of file Aarch64Emitter.cpp.
Definition at line 175 of file Aarch64Emitter.hpp.
|
inlineprivate |
Definition at line 218 of file Aarch64Emitter.hpp.
Definition at line 114 of file Aarch64Emitter.cpp.
Definition at line 106 of file Aarch64Emitter.cpp.
Definition at line 110 of file Aarch64Emitter.cpp.
void cacao::jit::compiler2::aarch64::Emitter::msub | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm, | ||
const Reg & | ra | ||
) |
Definition at line 146 of file Aarch64Emitter.cpp.
void cacao::jit::compiler2::aarch64::Emitter::mul | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm | ||
) |
Definition at line 173 of file Aarch64Emitter.cpp.
Definition at line 166 of file Aarch64Emitter.cpp.
|
inline |
Definition at line 174 of file Aarch64Emitter.hpp.
void cacao::jit::compiler2::aarch64::Emitter::orr | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm | ||
) |
Definition at line 134 of file Aarch64Emitter.cpp.
void cacao::jit::compiler2::aarch64::Emitter::sbfm | ( | const Reg & | rd, |
const Reg & | rn, | ||
u1 | immr, | ||
u1 | imms | ||
) |
Definition at line 98 of file Aarch64Emitter.cpp.
Definition at line 209 of file Aarch64Emitter.cpp.
void cacao::jit::compiler2::aarch64::Emitter::sdiv | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm | ||
) |
Definition at line 138 of file Aarch64Emitter.cpp.
Definition at line 90 of file Aarch64Emitter.cpp.
Definition at line 82 of file Aarch64Emitter.cpp.
Definition at line 122 of file Aarch64Emitter.cpp.
void cacao::jit::compiler2::aarch64::Emitter::sub | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm | ||
) |
Definition at line 162 of file Aarch64Emitter.cpp.
Definition at line 126 of file Aarch64Emitter.cpp.
void cacao::jit::compiler2::aarch64::Emitter::subs | ( | const Reg & | rd, |
const Reg & | rn, | ||
const Reg & | rm | ||
) |
Definition at line 156 of file Aarch64Emitter.cpp.
Definition at line 116 of file Aarch64Emitter.hpp.
Definition at line 117 of file Aarch64Emitter.hpp.
Definition at line 115 of file Aarch64Emitter.hpp.
Definition at line 213 of file Aarch64Emitter.cpp.
Definition at line 315 of file Aarch64Emitter.hpp.
void cacao::jit::compiler2::aarch64::Emitter::ubfm | ( | const Reg & | rd, |
const Reg & | rn, | ||
u1 | immr, | ||
u1 | imms | ||
) |
Definition at line 102 of file Aarch64Emitter.cpp.
Definition at line 121 of file Aarch64Emitter.hpp.
Definition at line 120 of file Aarch64Emitter.hpp.
|
private |
Definition at line 109 of file Aarch64Emitter.hpp.