Lines Matching refs:assembler
37 #include "src/ppc/assembler-ppc.h"
43 #include "src/macro-assembler.h"
44 #include "src/ppc/assembler-ppc-inl.h"
153 return (constant_pool && Assembler::IsConstantPoolLoadStart(pc_));
160 return Assembler::target_address_at(pc_, host_);
166 reinterpret_cast<intptr_t>(Assembler::target_address_at(pc_, host_)));
171 return Assembler::target_address_at(pc_, host_);
177 Assembler::set_target_address_at(isolate_, pc_, host_, address, flush_mode);
182 Assembler::set_target_address_at(isolate_, pc_, host_,
188 // See assembler-ppc-inl.h for inlined constructors
225 Assembler::Assembler(Isolate* isolate, void* buffer, int buffer_size)
246 void Assembler::GetCode(CodeDesc* desc) {
265 void Assembler::Align(int m) {
274 void Assembler::CodeTargetAlign() { Align(8); }
277 Condition Assembler::GetCondition(Instr instr) {
290 bool Assembler::IsLis(Instr instr) {
295 bool Assembler::IsLi(Instr instr) {
300 bool Assembler::IsAddic(Instr instr) { return (instr & kOpcodeMask) == ADDIC; }
303 bool Assembler::IsOri(Instr instr) { return (instr & kOpcodeMask) == ORI; }
306 bool Assembler::IsBranch(Instr instr) { return ((instr & kOpcodeMask) == BCX); }
309 Register Assembler::GetRA(Instr instr) {
316 Register Assembler::GetRB(Instr instr) {
325 bool Assembler::Is64BitLoadIntoR12(Instr instr1, Instr instr2, Instr instr3,
339 bool Assembler::Is32BitLoadIntoR12(Instr instr1, Instr instr2) {
348 bool Assembler::IsCmpRegister(Instr instr) {
354 bool Assembler::IsRlwinm(Instr instr) {
359 bool Assembler::IsAndi(Instr instr) { return ((instr & kOpcodeMask) == ANDIx); }
363 bool Assembler::IsRldicl(Instr instr) {
370 bool Assembler::IsCmpImmediate(Instr instr) {
375 bool Assembler::IsCrSet(Instr instr) {
381 Register Assembler::GetCmpImmediateRegister(Instr instr) {
387 int Assembler::GetCmpImmediateRawImmediate(Instr instr) {
417 int Assembler::target_at(int pos) {
448 void Assembler::target_at_put(int pos, int target_pos, bool* is_branch) {
528 int Assembler::max_reach_from(int pos) {
550 void Assembler::bind_to(Label* L, int pos) {
582 void Assembler::bind(Label* L) {
588 void Assembler::next(Label* L) {
600 bool Assembler::is_near(Label* L, Condition cond) {
611 void Assembler::a_form(Instr instr, DoubleRegister frt, DoubleRegister fra,
617 void Assembler::d_form(Instr instr, Register rt, Register ra,
636 void Assembler::x_form(Instr instr, Register ra, Register rs, Register rb,
642 void Assembler::xo_form(Instr instr, Register rt, Register ra, Register rb,
648 void Assembler::md_form(Instr instr, Register ra, Register rs, int shift,
660 void Assembler::mds_form(Instr instr, Register ra, Register rs, Register rb,
671 int32_t Assembler::get_trampoline_entry() {
685 int Assembler::link(Label* L) {
709 void Assembler::bclr(BOfield bo, int condition_bit, LKBit lk) {
714 void Assembler::bcctr(BOfield bo, int condition_bit, LKBit lk) {
720 void Assembler::blr() { bclr(BA, 0, LeaveLK); }
724 void Assembler::bctr() { bcctr(BA, 0, LeaveLK); }
727 void Assembler::bctrl() { bcctr(BA, 0, SetLK); }
730 void Assembler::bc(int branch_offset, BOfield bo, int condition_bit, LKBit lk) {
737 void Assembler::b(int branch_offset, LKBit lk) {
744 void Assembler::xori(Register dst, Register src, const Operand& imm) {
749 void Assembler::xoris(Register ra, Register rs, const Operand& imm) {
754 void Assembler::xor_(Register dst, Register src1, Register src2, RCBit rc) {
759 void Assembler::cntlzw_(Register ra, Register rs, RCBit rc) {
764 void Assembler::popcntw(Register ra, Register rs) {
769 void Assembler::and_(Register ra, Register rs, Register rb, RCBit rc) {
774 void Assembler::rlwinm(Register ra, Register rs, int sh, int mb, int me,
784 void Assembler::rlwnm(Register ra, Register rs, Register rb, int mb, int me,
793 void Assembler::rlwimi(Register ra, Register rs, int sh, int mb, int me,
803 void Assembler::slwi(Register dst, Register src, const Operand& val, RCBit rc) {
809 void Assembler::srwi(Register dst, Register src, const Operand& val, RCBit rc) {
815 void Assembler::clrrwi(Register dst, Register src, const Operand& val,
822 void Assembler::clrlwi(Register dst, Register src, const Operand& val,
829 void Assembler::srawi(Register ra, Register rs, int sh, RCBit r) {
834 void Assembler::srw(Register dst, Register src1, Register src2, RCBit r) {
839 void Assembler::slw(Register dst, Register src1, Register src2, RCBit r) {
844 void Assembler::sraw(Register ra, Register rs, Register rb, RCBit r) {
849 void Assembler::rotlw(Register ra, Register rs, Register rb, RCBit r) {
854 void Assembler::rotlwi(Register ra, Register rs, int sh, RCBit r) {
859 void Assembler::rotrwi(Register ra, Register rs, int sh, RCBit r) {
864 void Assembler::subi(Register dst, Register src, const Operand& imm) {
868 void Assembler::addc(Register dst, Register src1, Register src2, OEBit o,
873 void Assembler::adde(Register dst, Register src1, Register src2, OEBit o,
878 void Assembler::addze(Register dst, Register src1, OEBit o, RCBit r) {
884 void Assembler::sub(Register dst, Register src1, Register src2, OEBit o,
889 void Assembler::subc(Register dst, Register src1, Register src2, OEBit o,
894 void Assembler::sube(Register dst, Register src1, Register src2, OEBit o,
899 void Assembler::subfic(Register dst, Register src, const Operand& imm) {
904 void Assembler::add(Register dst, Register src1, Register src2, OEBit o,
911 void Assembler::mullw(Register dst, Register src1, Register src2, OEBit o,
918 void Assembler::mulhw(Register dst, Register src1, Register src2, RCBit r) {
924 void Assembler::mulhwu(Register dst, Register src1, Register src2, RCBit r) {
930 void Assembler::divw(Register dst, Register src1, Register src2, OEBit o,
937 void Assembler::divwu(Register dst, Register src1, Register src2, OEBit o,
943 void Assembler::addi(Register dst, Register src, const Operand& imm) {
949 void Assembler::addis(Register dst, Register src, const Operand& imm) {
955 void Assembler::addic(Register dst, Register src, const Operand& imm) {
960 void Assembler::andi(Register ra, Register rs, const Operand& imm) {
965 void Assembler::andis(Register ra, Register rs, const Operand& imm) {
970 void Assembler::nor(Register dst, Register src1, Register src2, RCBit r) {
975 void Assembler::notx(Register dst, Register src, RCBit r) {
980 void Assembler::ori(Register ra, Register rs, const Operand& imm) {
985 void Assembler::oris(Register dst, Register src, const Operand& imm) {
990 void Assembler::orx(Register dst, Register src1, Register src2, RCBit rc) {
995 void Assembler::orc(Register dst, Register src1, Register src2, RCBit rc) {
1000 void Assembler::cmpi(Register src1, const Operand& src2, CRegister cr) {
1014 void Assembler::cmpli(Register src1, const Operand& src2, CRegister cr) {
1028 void Assembler::cmp(Register src1, Register src2, CRegister cr) {
1040 void Assembler::cmpl(Register src1, Register src2, CRegister cr) {
1052 void Assembler::cmpwi(Register src1, const Operand& src2, CRegister cr) {
1070 void Assembler::cmplwi(Register src1, const Operand& src2, CRegister cr) {
1080 void Assembler::cmpw(Register src1, Register src2, CRegister cr) {
1088 void Assembler::cmplw(Register src1, Register src2, CRegister cr) {
1096 void Assembler::isel(Register rt, Register ra, Register rb, int cb) {
1103 void Assembler::li(Register dst, const Operand& imm) {
1108 void Assembler::lis(Register dst, const Operand& imm) {
1114 void Assembler::mr(Register dst, Register src) {
1120 void Assembler::lbz(Register dst, const MemOperand& src) {
1126 void Assembler::lbzx(Register rt, const MemOperand& src) {
1135 void Assembler::lbzux(Register rt, const MemOperand& src) {
1144 void Assembler::lhz(Register dst, const MemOperand& src) {
1150 void Assembler::lhzx(Register rt, const MemOperand& src) {
1159 void Assembler::lhzux(Register rt, const MemOperand& src) {
1168 void Assembler::lhax(Register rt, const MemOperand& src) {
1176 void Assembler::lwz(Register dst, const MemOperand& src) {
1182 void Assembler::lwzu(Register dst, const MemOperand& src) {
1188 void Assembler::lwzx(Register rt, const MemOperand& src) {
1197 void Assembler::lwzux(Register rt, const MemOperand& src) {
1206 void Assembler::lha(Register dst, const MemOperand& src) {
1212 void Assembler::lwa(Register dst, const MemOperand& src) {
1225 void Assembler::lwax(Register rt, const MemOperand& src) {
1237 void Assembler::stb(Register dst, const MemOperand& src) {
1243 void Assembler::stbx(Register rs, const MemOperand& src) {
1252 void Assembler::stbux(Register rs, const MemOperand& src) {
1261 void Assembler::sth(Register dst, const MemOperand& src) {
1267 void Assembler::sthx(Register rs, const MemOperand& src) {
1276 void Assembler::sthux(Register rs, const MemOperand& src) {
1285 void Assembler::stw(Register dst, const MemOperand& src) {
1291 void Assembler::stwu(Register dst, const MemOperand& src) {
1297 void Assembler::stwx(Register rs, const MemOperand& src) {
1306 void Assembler::stwux(Register rs, const MemOperand& src) {
1315 void Assembler::extsb(Register rs, Register ra, RCBit rc) {
1320 void Assembler::extsh(Register rs, Register ra, RCBit rc) {
1325 void Assembler::extsw(Register rs, Register ra, RCBit rc) {
1335 void Assembler::neg(Register rt, Register ra, OEBit o, RCBit r) {
1340 void Assembler::andc(Register dst, Register src1, Register src2, RCBit rc) {
1347 void Assembler::ld(Register rd, const MemOperand& src) {
1356 void Assembler::ldx(Register rd, const MemOperand& src) {
1364 void Assembler::ldu(Register rd, const MemOperand& src) {
1373 void Assembler::ldux(Register rd, const MemOperand& src) {
1381 void Assembler::std(Register rs, const MemOperand& src) {
1390 void Assembler::stdx(Register rs, const MemOperand& src) {
1398 void Assembler::stdu(Register rs, const MemOperand& src) {
1407 void Assembler::stdux(Register rs, const MemOperand& src) {
1415 void Assembler::rldic(Register ra, Register rs, int sh, int mb, RCBit r) {
1420 void Assembler::rldicl(Register ra, Register rs, int sh, int mb, RCBit r) {
1425 void Assembler::rldcl(Register ra, Register rs, Register rb, int mb, RCBit r) {
1430 void Assembler::rldicr(Register ra, Register rs, int sh, int me, RCBit r) {
1435 void Assembler::sldi(Register dst, Register src, const Operand& val, RCBit rc) {
1441 void Assembler::srdi(Register dst, Register src, const Operand& val, RCBit rc) {
1447 void Assembler::clrrdi(Register dst, Register src, const Operand& val,
1454 void Assembler::clrldi(Register dst, Register src, const Operand& val,
1461 void Assembler::rldimi(Register ra, Register rs, int sh, int mb, RCBit r) {
1466 void Assembler::sradi(Register ra, Register rs, int sh, RCBit r) {
1475 void Assembler::srd(Register dst, Register src1, Register src2, RCBit r) {
1480 void Assembler::sld(Register dst, Register src1, Register src2, RCBit r) {
1485 void Assembler::srad(Register ra, Register rs, Register rb, RCBit r) {
1490 void Assembler::rotld(Register ra, Register rs, Register rb, RCBit r) {
1495 void Assembler::rotldi(Register ra, Register rs, int sh, RCBit r) {
1500 void Assembler::rotrdi(Register ra, Register rs, int sh, RCBit r) {
1505 void Assembler::cntlzd_(Register ra, Register rs, RCBit rc) {
1510 void Assembler::popcntd(Register ra, Register rs) {
1515 void Assembler::mulld(Register dst, Register src1, Register src2, OEBit o,
1521 void Assembler::divd(Register dst, Register src1, Register src2, OEBit o,
1527 void Assembler::divdu(Register dst, Register src1, Register src2, OEBit o,
1537 void Assembler::function_descriptor() {
1549 int Assembler::instructions_required_for_mov(Register dst,
1564 bool Assembler::use_constant_pool_for_mov(Register dst, const Operand& src,
1592 void Assembler::EnsureSpaceFor(int space_needed) {
1599 bool Operand::must_output_reloc_info(const Assembler* assembler) const {
1601 if (assembler != NULL && assembler->predictable_code_size()) return true;
1602 return assembler->serializer_enabled();
1611 // This should really move to be in macro-assembler as it
1616 void Assembler::mov(Register dst, const Operand& src) {
1691 void Assembler::bitwise_mov(Register dst, intptr_t value) {
1714 void Assembler::bitwise_mov32(Register dst, int32_t value) {
1723 void Assembler::bitwise_add32(Register dst, Register src, int32_t value) {
1738 void Assembler::mov_label_offset(Register dst, Label* label) {
1765 void Assembler::add_label_offset(Register dst, Register base, Label* label,
1789 void Assembler::mov_label_addr(Register dst, Label* label) {
1819 void Assembler::emit_label_addr(Label* label) {
1848 void Assembler::crxor(int bt, int ba, int bb) {
1853 void Assembler::creqv(int bt, int ba, int bb) {
1858 void Assembler::mflr(Register dst) {
1863 void Assembler::mtlr(Register src) {
1868 void Assembler::mtctr(Register src) {
1873 void Assembler::mtxer(Register src) {
1878 void Assembler::mcrfs(CRegister cr, FPSCRBit bit) {
1886 void Assembler::mfcr(Register dst) { emit(EXT2 | MFCR | dst.code() * B21); }
1890 void Assembler::mffprd(Register dst, DoubleRegister src) {
1895 void Assembler::mffprwz(Register dst, DoubleRegister src) {
1900 void Assembler::mtfprd(DoubleRegister dst, Register src) {
1905 void Assembler::mtfprwz(DoubleRegister dst, Register src) {
1910 void Assembler::mtfprwa(DoubleRegister dst, Register src) {
1919 void Assembler::stop(const char* msg, Condition cond, int32_t code,
1932 void Assembler::bkpt(uint32_t imm16) { emit(0x7d821008); }
1935 void Assembler::dcbf(Register ra, Register rb) {
1940 void Assembler::sync() { emit(EXT2 | SYNC); }
1943 void Assembler::lwsync() { emit(EXT2 | SYNC | 1 * B21); }
1946 void Assembler::icbi(Register ra, Register rb) {
1951 void Assembler::isync() { emit(EXT1 | ISYNC); }
1956 void Assembler::lfd(const DoubleRegister frt, const MemOperand& src) {
1967 void Assembler::lfdu(const DoubleRegister frt, const MemOperand& src) {
1978 void Assembler::lfdx(const DoubleRegister frt, const MemOperand& src) {
1987 void Assembler::lfdux(const DoubleRegister frt, const MemOperand& src) {
1996 void Assembler::lfs(const DoubleRegister frt, const MemOperand& src) {
2007 void Assembler::lfsu(const DoubleRegister frt, const MemOperand& src) {
2018 void Assembler::lfsx(const DoubleRegister frt, const MemOperand& src) {
2027 void Assembler::lfsux(const DoubleRegister frt, const MemOperand& src) {
2036 void Assembler::stfd(const DoubleRegister frs, const MemOperand& src) {
2047 void Assembler::stfdu(const DoubleRegister frs, const MemOperand& src) {
2058 void Assembler::stfdx(const DoubleRegister frs, const MemOperand& src) {
2067 void Assembler::stfdux(const DoubleRegister frs, const MemOperand& src) {
2076 void Assembler::stfs(const DoubleRegister frs, const MemOperand& src) {
2087 void Assembler::stfsu(const DoubleRegister frs, const MemOperand& src) {
2098 void Assembler::stfsx(const DoubleRegister frs, const MemOperand& src) {
2107 void Assembler::stfsux(const DoubleRegister frs, const MemOperand& src) {
2116 void Assembler::fsub(const DoubleRegister frt, const DoubleRegister fra,
2122 void Assembler::fadd(const DoubleRegister frt, const DoubleRegister fra,
2128 void Assembler::fmul(const DoubleRegister frt, const DoubleRegister fra,
2135 void Assembler::fdiv(const DoubleRegister frt, const DoubleRegister fra,
2141 void Assembler::fcmpu(const DoubleRegister fra, const DoubleRegister frb,
2148 void Assembler::fmr(const DoubleRegister frt, const DoubleRegister frb,
2154 void Assembler::fctiwz(const DoubleRegister frt, const DoubleRegister frb) {
2159 void Assembler::fctiw(const DoubleRegister frt, const DoubleRegister frb) {
2164 void Assembler::frin(const DoubleRegister frt, const DoubleRegister frb,
2170 void Assembler::friz(const DoubleRegister frt, const DoubleRegister frb,
2176 void Assembler::frip(const DoubleRegister frt, const DoubleRegister frb,
2182 void Assembler::frim(const DoubleRegister frt, const DoubleRegister frb,
2188 void Assembler::frsp(const DoubleRegister frt, const DoubleRegister frb,
2194 void Assembler::fcfid(const DoubleRegister frt, const DoubleRegister frb,
2200 void Assembler::fcfidu(const DoubleRegister frt, const DoubleRegister frb,
2206 void Assembler::fcfidus(const DoubleRegister frt, const DoubleRegister frb,
2212 void Assembler::fcfids(const DoubleRegister frt, const DoubleRegister frb,
2218 void Assembler::fctid(const DoubleRegister frt, const DoubleRegister frb,
2224 void Assembler::fctidz(const DoubleRegister frt, const DoubleRegister frb,
2230 void Assembler::fctidu(const DoubleRegister frt, const DoubleRegister frb,
2236 void Assembler::fctiduz(const DoubleRegister frt, const DoubleRegister frb,
2242 void Assembler::fsel(const DoubleRegister frt, const DoubleRegister fra,
2250 void Assembler::fneg(const DoubleRegister frt, const DoubleRegister frb,
2256 void Assembler::mtfsb0(FPSCRBit bit, RCBit rc) {
2263 void Assembler::mtfsb1(FPSCRBit bit, RCBit rc) {
2270 void Assembler::mtfsfi(int bf, int immediate, RCBit rc) {
2275 void Assembler::mffs(const DoubleRegister frt, RCBit rc) {
2280 void Assembler::mtfsf(const DoubleRegister frb, bool L, int FLM, bool W,
2286 void Assembler::fsqrt(const DoubleRegister frt, const DoubleRegister frb,
2292 void Assembler::fabs(const DoubleRegister frt, const DoubleRegister frb,
2298 void Assembler::fmadd(const DoubleRegister frt, const DoubleRegister fra,
2306 void Assembler::fmsub(const DoubleRegister frt, const DoubleRegister fra,
2315 void Assembler::nop(int type) {
2335 bool Assembler::IsNop(Instr instr, int type) {
2354 void Assembler::GrowBuffer(int needed) {
2401 void Assembler::db(uint8_t data) {
2408 void Assembler::dd(uint32_t data) {
2415 void Assembler::dq(uint64_t value) {
2422 void Assembler::dp(uintptr_t data) {
2429 void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data) {
2445 void Assembler::EmitRelocations() {
2474 void Assembler::BlockTrampolinePoolFor(int instructions) {
2479 void Assembler::CheckTrampolinePool() {