Home | History | Annotate | Download | only in ppc

Lines Matching defs:Assembler

37 #include "src/ppc/assembler-ppc.h"
43 #include "src/macro-assembler.h"
44 #include "src/ppc/assembler-ppc-inl.h"
150 return (constant_pool && Assembler::IsConstantPoolLoadStart(pc_));
158 // See assembler-ppc-inl.h for inlined constructors
195 Assembler::Assembler(Isolate* isolate, void* buffer, int buffer_size)
216 void Assembler::GetCode(CodeDesc* desc) {
233 void Assembler::Align(int m) {
242 void Assembler::CodeTargetAlign() { Align(8); }
245 Condition Assembler::GetCondition(Instr instr) {
258 bool Assembler::IsLis(Instr instr) {
263 bool Assembler::IsLi(Instr instr) {
268 bool Assembler::IsAddic(Instr instr) { return (instr & kOpcodeMask) == ADDIC; }
271 bool Assembler::IsOri(Instr instr) { return (instr & kOpcodeMask) == ORI; }
274 bool Assembler::IsBranch(Instr instr) { return ((instr & kOpcodeMask) == BCX); }
277 Register Assembler::GetRA(Instr instr) {
284 Register Assembler::GetRB(Instr instr) {
293 bool Assembler::Is64BitLoadIntoR12(Instr instr1, Instr instr2, Instr instr3,
307 bool Assembler::Is32BitLoadIntoR12(Instr instr1, Instr instr2) {
316 bool Assembler::IsCmpRegister(Instr instr) {
322 bool Assembler::IsRlwinm(Instr instr) {
327 bool Assembler::IsAndi(Instr instr) { return ((instr & kOpcodeMask) == ANDIx); }
331 bool Assembler::IsRldicl(Instr instr) {
338 bool Assembler::IsCmpImmediate(Instr instr) {
343 bool Assembler::IsCrSet(Instr instr) {
349 Register Assembler::GetCmpImmediateRegister(Instr instr) {
355 int Assembler::GetCmpImmediateRawImmediate(Instr instr) {
385 int Assembler::target_at(int pos) {
416 void Assembler::target_at_put(int pos, int target_pos, bool* is_branch) {
496 int Assembler::max_reach_from(int pos) {
518 void Assembler::bind_to(Label* L, int pos) {
550 void Assembler::bind(Label* L) {
556 void Assembler::next(Label* L) {
568 bool Assembler::is_near(Label* L, Condition cond) {
579 void Assembler::a_form(Instr instr, DoubleRegister frt, DoubleRegister fra,
585 void Assembler::d_form(Instr instr, Register rt, Register ra,
604 void Assembler::x_form(Instr instr, Register ra, Register rs, Register rb,
610 void Assembler::xo_form(Instr instr, Register rt, Register ra, Register rb,
616 void Assembler::md_form(Instr instr, Register ra, Register rs, int shift,
628 void Assembler::mds_form(Instr instr, Register ra, Register rs, Register rb,
639 int32_t Assembler::get_trampoline_entry() {
653 int Assembler::link(Label* L) {
677 void Assembler::bclr(BOfield bo, int condition_bit, LKBit lk) {
683 void Assembler::bcctr(BOfield bo, int condition_bit, LKBit lk) {
690 void Assembler::blr() { bclr(BA, 0, LeaveLK); }
694 void Assembler::bctr() { bcctr(BA, 0, LeaveLK); }
697 void Assembler::bctrl() { bcctr(BA, 0, SetLK); }
700 void Assembler::bc(int branch_offset, BOfield bo, int condition_bit, LKBit lk) {
710 void Assembler::b(int branch_offset, LKBit lk) {
720 void Assembler::xori(Register dst, Register src, const Operand& imm) {
725 void Assembler::xoris(Register ra, Register rs, const Operand& imm) {
730 void Assembler::xor_(Register dst, Register src1, Register src2, RCBit rc) {
735 void Assembler::cntlzw_(Register ra, Register rs, RCBit rc) {
740 void Assembler::popcntw(Register ra, Register rs) {
745 void Assembler::and_(Register ra, Register rs, Register rb, RCBit rc) {
750 void Assembler::rlwinm(Register ra, Register rs, int sh, int mb, int me,
760 void Assembler::rlwnm(Register ra, Register rs, Register rb, int mb, int me,
769 void Assembler::rlwimi(Register ra, Register rs, int sh, int mb, int me,
779 void Assembler::slwi(Register dst, Register src, const Operand& val, RCBit rc) {
785 void Assembler::srwi(Register dst, Register src, const Operand& val, RCBit rc) {
791 void Assembler::clrrwi(Register dst, Register src, const Operand& val,
798 void Assembler::clrlwi(Register dst, Register src, const Operand& val,
805 void Assembler::srawi(Register ra, Register rs, int sh, RCBit r) {
810 void Assembler::srw(Register dst, Register src1, Register src2, RCBit r) {
815 void Assembler::slw(Register dst, Register src1, Register src2, RCBit r) {
820 void Assembler::sraw(Register ra, Register rs, Register rb, RCBit r) {
825 void Assembler::rotlw(Register ra, Register rs, Register rb, RCBit r) {
830 void Assembler::rotlwi(Register ra, Register rs, int sh, RCBit r) {
835 void Assembler::rotrwi(Register ra, Register rs, int sh, RCBit r) {
840 void Assembler::subi(Register dst, Register src, const Operand& imm) {
844 void Assembler::addc(Register dst, Register src1, Register src2, OEBit o,
850 void Assembler::addze(Register dst, Register src1, OEBit o, RCBit r) {
856 void Assembler::sub(Register dst, Register src1, Register src2, OEBit o,
862 void Assembler::subfc(Register dst, Register src1, Register src2, OEBit o,
868 void Assembler::subfic(Register dst, Register src, const Operand& imm) {
873 void Assembler::add(Register dst, Register src1, Register src2, OEBit o,
880 void Assembler::mullw(Register dst, Register src1, Register src2, OEBit o,
887 void Assembler::mulhw(Register dst, Register src1, Register src2, RCBit r) {
893 void Assembler::mulhwu(Register dst, Register src1, Register src2, RCBit r) {
899 void Assembler::divw(Register dst, Register src1, Register src2, OEBit o,
906 void Assembler::divwu(Register dst, Register src1, Register src2, OEBit o,
912 void Assembler::addi(Register dst, Register src, const Operand& imm) {
918 void Assembler::addis(Register dst, Register src, const Operand& imm) {
924 void Assembler::addic(Register dst, Register src, const Operand& imm) {
929 void Assembler::andi(Register ra, Register rs, const Operand& imm) {
934 void Assembler::andis(Register ra, Register rs, const Operand& imm) {
939 void Assembler::nor(Register dst, Register src1, Register src2, RCBit r) {
944 void Assembler::notx(Register dst, Register src, RCBit r) {
949 void Assembler::ori(Register ra, Register rs, const Operand& imm) {
954 void Assembler::oris(Register dst, Register src, const Operand& imm) {
959 void Assembler::orx(Register dst, Register src1, Register src2, RCBit rc) {
964 void Assembler::orc(Register dst, Register src1, Register src2, RCBit rc) {
969 void Assembler::cmpi(Register src1, const Operand& src2, CRegister cr) {
983 void Assembler::cmpli(Register src1, const Operand& src2, CRegister cr) {
997 void Assembler::cmp(Register src1, Register src2, CRegister cr) {
1009 void Assembler::cmpl(Register src1, Register src2, CRegister cr) {
1021 void Assembler::cmpwi(Register src1, const Operand& src2, CRegister cr) {
1039 void Assembler::cmplwi(Register src1, const Operand& src2, CRegister cr) {
1049 void Assembler::cmpw(Register src1, Register src2, CRegister cr) {
1057 void Assembler::cmplw(Register src1, Register src2, CRegister cr) {
1065 void Assembler::isel(Register rt, Register ra, Register rb, int cb) {
1072 void Assembler::li(Register dst, const Operand& imm) {
1077 void Assembler::lis(Register dst, const Operand& imm) {
1083 void Assembler::mr(Register dst, Register src) {
1089 void Assembler::lbz(Register dst, const MemOperand& src) {
1095 void Assembler::lbzx(Register rt, const MemOperand& src) {
1104 void Assembler::lbzux(Register rt, const MemOperand& src) {
1113 void Assembler::lhz(Register dst, const MemOperand& src) {
1119 void Assembler::lhzx(Register rt, const MemOperand& src) {
1128 void Assembler::lhzux(Register rt, const MemOperand& src) {
1137 void Assembler::lhax(Register rt, const MemOperand& src) {
1145 void Assembler::lwz(Register dst, const MemOperand& src) {
1151 void Assembler::lwzu(Register dst, const MemOperand& src) {
1157 void Assembler::lwzx(Register rt, const MemOperand& src) {
1166 void Assembler::lwzux(Register rt, const MemOperand& src) {
1175 void Assembler::lha(Register dst, const MemOperand& src) {
1181 void Assembler::lwa(Register dst, const MemOperand& src) {
1194 void Assembler::lwax(Register rt, const MemOperand& src) {
1206 void Assembler::stb(Register dst, const MemOperand& src) {
1212 void Assembler::stbx(Register rs, const MemOperand& src) {
1221 void Assembler::stbux(Register rs, const MemOperand& src) {
1230 void Assembler::sth(Register dst, const MemOperand& src) {
1236 void Assembler::sthx(Register rs, const MemOperand& src) {
1245 void Assembler::sthux(Register rs, const MemOperand& src) {
1254 void Assembler::stw(Register dst, const MemOperand& src) {
1260 void Assembler::stwu(Register dst, const MemOperand& src) {
1266 void Assembler::stwx(Register rs, const MemOperand& src) {
1275 void Assembler::stwux(Register rs, const MemOperand& src) {
1284 void Assembler::extsb(Register rs, Register ra, RCBit rc) {
1289 void Assembler::extsh(Register rs, Register ra, RCBit rc) {
1294 void Assembler::extsw(Register rs, Register ra, RCBit rc) {
1304 void Assembler::neg(Register rt, Register ra, OEBit o, RCBit r) {
1309 void Assembler::andc(Register dst, Register src1, Register src2, RCBit rc) {
1316 void Assembler::ld(Register rd, const MemOperand& src) {
1325 void Assembler::ldx(Register rd, const MemOperand& src) {
1333 void Assembler::ldu(Register rd, const MemOperand& src) {
1342 void Assembler::ldux(Register rd, const MemOperand& src) {
1350 void Assembler::std(Register rs, const MemOperand& src) {
1359 void Assembler::stdx(Register rs, const MemOperand& src) {
1367 void Assembler::stdu(Register rs, const MemOperand& src) {
1376 void Assembler::stdux(Register rs, const MemOperand& src) {
1384 void Assembler::rldic(Register ra, Register rs, int sh, int mb, RCBit r) {
1389 void Assembler::rldicl(Register ra, Register rs, int sh, int mb, RCBit r) {
1394 void Assembler::rldcl(Register ra, Register rs, Register rb, int mb, RCBit r) {
1399 void Assembler::rldicr(Register ra, Register rs, int sh, int me, RCBit r) {
1404 void Assembler::sldi(Register dst, Register src, const Operand& val, RCBit rc) {
1410 void Assembler::srdi(Register dst, Register src, const Operand& val, RCBit rc) {
1416 void Assembler::clrrdi(Register dst, Register src, const Operand& val,
1423 void Assembler::clrldi(Register dst, Register src, const Operand& val,
1430 void Assembler::rldimi(Register ra, Register rs, int sh, int mb, RCBit r) {
1435 void Assembler::sradi(Register ra, Register rs, int sh, RCBit r) {
1444 void Assembler::srd(Register dst, Register src1, Register src2, RCBit r) {
1449 void Assembler::sld(Register dst, Register src1, Register src2, RCBit r) {
1454 void Assembler::srad(Register ra, Register rs, Register rb, RCBit r) {
1459 void Assembler::rotld(Register ra, Register rs, Register rb, RCBit r) {
1464 void Assembler::rotldi(Register ra, Register rs, int sh, RCBit r) {
1469 void Assembler::rotrdi(Register ra, Register rs, int sh, RCBit r) {
1474 void Assembler::cntlzd_(Register ra, Register rs, RCBit rc) {
1479 void Assembler::popcntd(Register ra, Register rs) {
1484 void Assembler::mulld(Register dst, Register src1, Register src2, OEBit o,
1490 void Assembler::divd(Register dst, Register src1, Register src2, OEBit o,
1496 void Assembler::divdu(Register dst, Register src1, Register src2, OEBit o,
1506 void Assembler::function_descriptor() {
1518 int Assembler::instructions_required_for_mov(Register dst,
1533 bool Assembler::use_constant_pool_for_mov(Register dst, const Operand& src,
1561 void Assembler::EnsureSpaceFor(int space_needed) {
1568 bool Operand::must_output_reloc_info(const Assembler* assembler) const {
1570 if (assembler != NULL && assembler->predictable_code_size()) return true;
1571 return assembler->serializer_enabled();
1580 // This should really move to be in macro-assembler as it
1585 void Assembler::mov(Register dst, const Operand& src) {
1660 void Assembler::bitwise_mov(Register dst, intptr_t value) {
1683 void Assembler::bitwise_mov32(Register dst, int32_t value) {
1692 void Assembler::bitwise_add32(Register dst, Register src, int32_t value) {
1707 void Assembler::mov_label_offset(Register dst, Label* label) {
1734 void Assembler::add_label_offset(Register dst, Register base, Label* label,
1758 void Assembler::mov_label_addr(Register dst, Label* label) {
1788 void Assembler::emit_label_addr(Label* label) {
1817 void Assembler::crxor(int bt, int ba, int bb) {
1822 void Assembler::creqv(int bt, int ba, int bb) {
1827 void Assembler::mflr(Register dst) {
1832 void Assembler::mtlr(Register src) {
1837 void Assembler::mtctr(Register src) {
1842 void Assembler::mtxer(Register src) {
1847 void Assembler::mcrfs(CRegister cr, FPSCRBit bit) {
1855 void Assembler::mfcr(Register dst) { emit(EXT2 | MFCR | dst.code() * B21); }
1859 void Assembler::mffprd(Register dst, DoubleRegister src) {
1864 void Assembler::mffprwz(Register dst, DoubleRegister src) {
1869 void Assembler::mtfprd(DoubleRegister dst, Register src) {
1874 void Assembler::mtfprwz(DoubleRegister dst, Register src) {
1879 void Assembler::mtfprwa(DoubleRegister dst, Register src) {
1888 void Assembler::stop(const char* msg, Condition cond, int32_t code,
1901 void Assembler::bkpt(uint32_t imm16) { emit(0x7d821008); }
1904 void Assembler::dcbf(Register ra, Register rb) {
1909 void Assembler::sync() { emit(EXT2 | SYNC); }
1912 void Assembler::lwsync() { emit(EXT2 | SYNC | 1 * B21); }
1915 void Assembler::icbi(Register ra, Register rb) {
1920 void Assembler::isync() { emit(EXT1 | ISYNC); }
1925 void Assembler::lfd(const DoubleRegister frt, const MemOperand& src) {
1936 void Assembler::lfdu(const DoubleRegister frt, const MemOperand& src) {
1947 void Assembler::lfdx(const DoubleRegister frt, const MemOperand& src) {
1956 void Assembler::lfdux(const DoubleRegister frt, const MemOperand& src) {
1965 void Assembler::lfs(const DoubleRegister frt, const MemOperand& src) {
1976 void Assembler::lfsu(const DoubleRegister frt, const MemOperand& src) {
1987 void Assembler::lfsx(const DoubleRegister frt, const MemOperand& src) {
1996 void Assembler::lfsux(const DoubleRegister frt, const MemOperand& src) {
2005 void Assembler::stfd(const DoubleRegister frs, const MemOperand& src) {
2016 void Assembler::stfdu(const DoubleRegister frs, const MemOperand& src) {
2027 void Assembler::stfdx(const DoubleRegister frs, const MemOperand& src) {
2036 void Assembler::stfdux(const DoubleRegister frs, const MemOperand& src) {
2045 void Assembler::stfs(const DoubleRegister frs, const MemOperand& src) {
2056 void Assembler::stfsu(const DoubleRegister frs, const MemOperand& src) {
2067 void Assembler::stfsx(const DoubleRegister frs, const MemOperand& src) {
2076 void Assembler::stfsux(const DoubleRegister frs, const MemOperand& src) {
2085 void Assembler::fsub(const DoubleRegister frt, const DoubleRegister fra,
2091 void Assembler::fadd(const DoubleRegister frt, const DoubleRegister fra,
2097 void Assembler::fmul(const DoubleRegister frt, const DoubleRegister fra,
2104 void Assembler::fdiv(const DoubleRegister frt, const DoubleRegister fra,
2110 void Assembler::fcmpu(const DoubleRegister fra, const DoubleRegister frb,
2117 void Assembler::fmr(const DoubleRegister frt, const DoubleRegister frb,
2123 void Assembler::fctiwz(const DoubleRegister frt, const DoubleRegister frb) {
2128 void Assembler::fctiw(const DoubleRegister frt, const DoubleRegister frb) {
2133 void Assembler::frin(const DoubleRegister frt, const DoubleRegister frb,
2139 void Assembler::friz(const DoubleRegister frt, const DoubleRegister frb,
2145 void Assembler::frip(const DoubleRegister frt, const DoubleRegister frb,
2151 void Assembler::frim(const DoubleRegister frt, const DoubleRegister frb,
2157 void Assembler::frsp(const DoubleRegister frt, const DoubleRegister frb,
2163 void Assembler::fcfid(const DoubleRegister frt, const DoubleRegister frb,
2169 void Assembler::fcfidu(const DoubleRegister frt, const DoubleRegister frb,
2175 void Assembler::fcfidus(const DoubleRegister frt, const DoubleRegister frb,
2181 void Assembler::fcfids(const DoubleRegister frt, const DoubleRegister frb,
2187 void Assembler::fctid(const DoubleRegister frt, const DoubleRegister frb,
2193 void Assembler::fctidz(const DoubleRegister frt, const DoubleRegister frb,
2199 void Assembler::fctidu(const DoubleRegister frt, const DoubleRegister frb,
2205 void Assembler::fctiduz(const DoubleRegister frt, const DoubleRegister frb,
2211 void Assembler::fsel(const DoubleRegister frt, const DoubleRegister fra,
2219 void Assembler::fneg(const DoubleRegister frt, const DoubleRegister frb,
2225 void Assembler::mtfsb0(FPSCRBit bit, RCBit rc) {
2232 void Assembler::mtfsb1(FPSCRBit bit, RCBit rc) {
2239 void Assembler::mtfsfi(int bf, int immediate, RCBit rc) {
2244 void Assembler::mffs(const DoubleRegister frt, RCBit rc) {
2249 void Assembler::mtfsf(const DoubleRegister frb, bool L, int FLM, bool W,
2255 void Assembler::fsqrt(const DoubleRegister frt, const DoubleRegister frb,
2261 void Assembler::fabs(const DoubleRegister frt, const DoubleRegister frb,
2267 void Assembler::fmadd(const DoubleRegister frt, const DoubleRegister fra,
2275 void Assembler::fmsub(const DoubleRegister frt, const DoubleRegister fra,
2284 void Assembler::nop(int type) {
2304 bool Assembler::IsNop(Instr instr, int type) {
2323 void Assembler::GrowBuffer(int needed) {
2370 void Assembler::db(uint8_t data) {
2377 void Assembler::dd(uint32_t data) {
2384 void Assembler::dq(uint64_t value) {
2391 void Assembler::dp(uintptr_t data) {
2398 void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data) {
2414 void Assembler::EmitRelocations() {
2443 void Assembler::BlockTrampolinePoolFor(int instructions) {
2448 void Assembler::CheckTrampolinePool() {