Lines Matching refs:Assembler
41 #include "src/mips64/assembler-mips64-inl.h"
203 CpuFeatures::FlushICache(pc_, instruction_count * Assembler::kInstrSize);
217 // See assembler-mips-inl.h for inlined constructors.
285 Assembler::Assembler(Isolate* isolate, void* buffer, int buffer_size)
309 void Assembler::GetCode(CodeDesc* desc) {
320 void Assembler::Align(int m) {
328 void Assembler::CodeTargetAlign() {
335 Register Assembler::GetRtReg(Instr instr) {
342 Register Assembler::GetRsReg(Instr instr) {
349 Register Assembler::GetRdReg(Instr instr) {
356 uint32_t Assembler::GetRt(Instr instr) {
361 uint32_t Assembler::GetRtField(Instr instr) {
366 uint32_t Assembler::GetRs(Instr instr) {
371 uint32_t Assembler::GetRsField(Instr instr) {
376 uint32_t Assembler::GetRd(Instr instr) {
381 uint32_t Assembler::GetRdField(Instr instr) {
386 uint32_t Assembler::GetSa(Instr instr) {
391 uint32_t Assembler::GetSaField(Instr instr) {
396 uint32_t Assembler::GetOpcodeField(Instr instr) {
401 uint32_t Assembler::GetFunction(Instr instr) {
406 uint32_t Assembler::GetFunctionField(Instr instr) {
411 uint32_t Assembler::GetImmediate16(Instr instr) {
416 uint32_t Assembler::GetLabelConst(Instr instr) {
421 bool Assembler::IsPop(Instr instr) {
426 bool Assembler::IsPush(Instr instr) {
431 bool Assembler::IsSwRegFpOffset(Instr instr) {
436 bool Assembler::IsLwRegFpOffset(Instr instr) {
441 bool Assembler::IsSwRegFpNegOffset(Instr instr) {
447 bool Assembler::IsLwRegFpNegOffset(Instr instr) {
473 bool Assembler::IsBranch(Instr instr) {
494 bool Assembler::IsEmittedConstant(Instr instr) {
500 bool Assembler::IsBeq(Instr instr) {
505 bool Assembler::IsBne(Instr instr) {
510 bool Assembler::IsJump(Instr instr) {
522 bool Assembler::IsJ(Instr instr) {
529 bool Assembler::IsJal(Instr instr) {
534 bool Assembler::IsJr(Instr instr) {
539 bool Assembler::IsJalr(Instr instr) {
544 bool Assembler::IsLui(Instr instr) {
551 bool Assembler::IsOri(Instr instr) {
558 bool Assembler::IsNop(Instr instr, unsigned int type) {
559 // See Assembler::nop(type).
582 int32_t Assembler::GetBranchOffset(Instr instr) {
588 bool Assembler::IsLw(Instr instr) {
593 int16_t Assembler::GetLwOffset(Instr instr) {
599 Instr Assembler::SetLwOffset(Instr instr, int16_t offset) {
610 bool Assembler::IsSw(Instr instr) {
615 Instr Assembler::SetSwOffset(Instr instr, int16_t offset) {
621 bool Assembler::IsAddImmediate(Instr instr) {
626 Instr Assembler::SetAddImmediateOffset(Instr instr, int16_t offset) {
632 bool Assembler::IsAndImmediate(Instr instr) {
637 int64_t Assembler::target_at(int64_t pos) {
661 Instr instr_lui = instr_at(pos + 0 * Assembler::kInstrSize);
662 Instr instr_ori = instr_at(pos + 1 * Assembler::kInstrSize);
663 Instr instr_ori2 = instr_at(pos + 3 * Assembler::kInstrSize);
699 void Assembler::target_at_put(int64_t pos, int64_t target_pos) {
720 Instr instr_lui = instr_at(pos + 0 * Assembler::kInstrSize);
721 Instr instr_ori = instr_at(pos + 1 * Assembler::kInstrSize);
722 Instr instr_ori2 = instr_at(pos + 3 * Assembler::kInstrSize);
733 instr_at_put(pos + 0 * Assembler::kInstrSize,
735 instr_at_put(pos + 1 * Assembler::kInstrSize,
737 instr_at_put(pos + 3 * Assembler::kInstrSize,
753 void Assembler::print(Label* L) {
777 void Assembler::bind_to(Label* L, int pos) {
816 void Assembler::bind(Label* L) {
822 void Assembler::next(Label* L) {
834 bool Assembler::is_near(Label* L) {
846 bool Assembler::MustUseReg(RelocInfo::Mode rmode) {
850 void Assembler::GenInstrRegister(Opcode opcode,
863 void Assembler::GenInstrRegister(Opcode opcode,
876 void Assembler::GenInstrRegister(Opcode opcode,
889 void Assembler::GenInstrRegister(Opcode opcode,
902 void Assembler::GenInstrRegister(Opcode opcode,
915 void Assembler::GenInstrRegister(Opcode opcode,
929 void Assembler::GenInstrImmediate(Opcode opcode,
940 void Assembler::GenInstrImmediate(Opcode opcode,
950 void Assembler::GenInstrImmediate(Opcode opcode,
961 void Assembler::GenInstrJump(Opcode opcode,
972 int32_t Assembler::get_trampoline_entry(int32_t pos) {
987 uint64_t Assembler::jump_address(Label* L) {
1008 int32_t Assembler::branch_offset(Label* L, bool jump_elimination_allowed) {
1034 int32_t Assembler::branch_offset_compact(Label* L,
1061 int32_t Assembler::branch_offset21(Label* L, bool jump_elimination_allowed) {
1087 int32_t Assembler::branch_offset21_compact(Label* L,
1114 void Assembler::label_at_put(Label* L, int at_offset) {
1142 void Assembler::b(int16_t offset) {
1147 void Assembler::bal(int16_t offset) {
1153 void Assembler::beq(Register rs, Register rt, int16_t offset) {
1160 void Assembler::bgez(Register rs, int16_t offset) {
1167 void Assembler::bgezc(Register rt, int16_t offset) {
1174 void Assembler::bgeuc(Register rs, Register rt, int16_t offset) {
1183 void Assembler::bgec(Register rs, Register rt, int16_t offset) {
1192 void Assembler::bgezal(Register rs, int16_t offset) {
1201 void Assembler::bgtz(Register rs, int16_t offset) {
1208 void Assembler::bgtzc(Register rt, int16_t offset) {
1215 void Assembler::blez(Register rs, int16_t offset) {
1222 void Assembler::blezc(Register rt, int16_t offset) {
1229 void Assembler::bltzc(Register rt, int16_t offset) {
1236 void Assembler::bltuc(Register rs, Register rt, int16_t offset) {
1245 void Assembler::bltc(Register rs, Register rt, int16_t offset) {
1254 void Assembler::bltz(Register rs, int16_t offset) {
1261 void Assembler::bltzal(Register rs, int16_t offset) {
1270 void Assembler::bne(Register rs, Register rt, int16_t offset) {
1277 void Assembler::bovc(Register rs, Register rt, int16_t offset) {
1285 void Assembler::bnvc(Register rs, Register rt, int16_t offset) {
1293 void Assembler::blezalc(Register rt, int16_t offset) {
1300 void Assembler::bgezalc(Register rt, int16_t offset) {
1307 void Assembler::bgezall(Register rs, int16_t offset) {
1314 void Assembler::bltzalc(Register rt, int16_t offset) {
1321 void Assembler::bgtzalc(Register rt, int16_t offset) {
1328 void Assembler::beqzalc(Register rt, int16_t offset) {
1335 void Assembler::bnezalc(Register rt, int16_t offset) {
1342 void Assembler::beqc(Register rs, Register rt, int16_t offset) {
1349 void Assembler::beqzc(Register rs, int32_t offset) {
1357 void Assembler::bnec(Register rs, Register rt, int16_t offset) {
1364 void Assembler::bnezc(Register rs, int32_t offset) {
1372 void Assembler::j(int64_t target) {
1384 void Assembler::jr(Register rs) {
1398 void Assembler::jal(int64_t target) {
1411 void Assembler::jalr(Register rs, Register rd) {
1419 void Assembler::j_or_jr(int64_t target, Register rs) {
1432 void Assembler::jal_or_jalr(int64_t target, Register rs) {
1449 void Assembler::addu(Register rd, Register rs, Register rt) {
1454 void Assembler::addiu(Register rd, Register rs, int32_t j) {
1459 void Assembler::subu(Register rd, Register rs, Register rt) {
1464 void Assembler::mul(Register rd, Register rs, Register rt) {
1473 void Assembler::muh(Register rd, Register rs, Register rt) {
1479 void Assembler::mulu(Register rd, Register rs, Register rt) {
1485 void Assembler::muhu(Register rd, Register rs, Register rt) {
1491 void Assembler::dmul(Register rd, Register rs, Register rt) {
1497 void Assembler::dmuh(Register rd, Register rs, Register rt) {
1503 void Assembler::dmulu(Register rd, Register rs, Register rt) {
1509 void Assembler::dmuhu(Register rd, Register rs, Register rt) {
1515 void Assembler::mult(Register rs, Register rt) {
1521 void Assembler::multu(Register rs, Register rt) {
1527 void Assembler::daddiu(Register rd, Register rs, int32_t j) {
1532 void Assembler::div(Register rs, Register rt) {
1537 void Assembler::div(Register rd, Register rs, Register rt) {
1543 void Assembler::mod(Register rd, Register rs, Register rt) {
1549 void Assembler::divu(Register rs, Register rt) {
1554 void Assembler::divu(Register rd, Register rs, Register rt) {
1560 void Assembler::modu(Register rd, Register rs, Register rt) {
1566 void Assembler::daddu(Register rd, Register rs, Register rt) {
1571 void Assembler::dsubu(Register rd, Register rs, Register rt) {
1576 void Assembler::dmult(Register rs, Register rt) {
1581 void Assembler::dmultu(Register rs, Register rt) {
1586 void Assembler::ddiv(Register rs, Register rt) {
1591 void Assembler::ddiv(Register rd, Register rs, Register rt) {
1597 void Assembler::dmod(Register rd, Register rs, Register rt) {
1603 void Assembler::ddivu(Register rs, Register rt) {
1608 void Assembler::ddivu(Register rd, Register rs, Register rt) {
1614 void Assembler::dmodu(Register rd, Register rs, Register rt) {
1622 void Assembler::and_(Register rd, Register rs, Register rt) {
1627 void Assembler::andi(Register rt, Register rs, int32_t j) {
1633 void Assembler::or_(Register rd, Register rs, Register rt) {
1638 void Assembler::ori(Register rt, Register rs, int32_t j) {
1644 void Assembler::xor_(Register rd, Register rs, Register rt) {
1649 void Assembler::xori(Register rt, Register rs, int32_t j) {
1655 void Assembler::nor(Register rd, Register rs, Register rt) {
1661 void Assembler::sll(Register rd,
1674 void Assembler::sllv(Register rd, Register rt, Register rs) {
1679 void Assembler::srl(Register rd, Register rt, uint16_t sa) {
1684 void Assembler::srlv(Register rd, Register rt, Register rs) {
1689 void Assembler::sra(Register rd, Register rt, uint16_t sa) {
1694 void Assembler::srav(Register rd, Register rt, Register rs) {
1699 void Assembler::rotr(Register rd, Register rt, uint16_t sa) {
1709 void Assembler::rotrv(Register rd, Register rt, Register rs) {
1719 void Assembler::dsll(Register rd, Register rt, uint16_t sa) {
1724 void Assembler::dsllv(Register rd, Register rt, Register rs) {
1729 void Assembler::dsrl(Register rd, Register rt, uint16_t sa) {
1734 void Assembler::dsrlv(Register rd, Register rt, Register rs) {
1739 void Assembler::drotr(Register rd, Register rt, uint16_t sa) {
1747 void Assembler::drotrv(Register rd, Register rt, Register rs) {
1755 void Assembler::dsra(Register rd, Register rt, uint16_t sa) {
1760 void Assembler::dsrav(Register rd, Register rt, Register rs) {
1765 void Assembler::dsll32(Register rd, Register rt, uint16_t sa) {
1770 void Assembler::dsrl32(Register rd, Register rt, uint16_t sa) {
1775 void Assembler::dsra32(Register rd, Register rt, uint16_t sa) {
1783 void Assembler::LoadRegPlusOffsetToAt(const MemOperand& src) {
1793 void Assembler::lb(Register rd, const MemOperand& rs) {
1803 void Assembler::lbu(Register rd, const MemOperand& rs) {
1813 void Assembler::lh(Register rd, const MemOperand& rs) {
1823 void Assembler::lhu(Register rd, const MemOperand& rs) {
1833 void Assembler::lw(Register rd, const MemOperand& rs) {
1843 void Assembler::lwu(Register rd, const MemOperand& rs) {
1853 void Assembler::lwl(Register rd, const MemOperand& rs) {
1858 void Assembler::lwr(Register rd, const MemOperand& rs) {
1863 void Assembler::sb(Register rd, const MemOperand& rs) {
1873 void Assembler::sh(Register rd, const MemOperand& rs) {
1883 void Assembler::sw(Register rd, const MemOperand& rs) {
1893 void Assembler::swl(Register rd, const MemOperand& rs) {
1898 void Assembler::swr(Register rd, const MemOperand& rs) {
1903 void Assembler::lui(Register rd, int32_t j) {
1909 void Assembler::aui(Register rs, Register rt, int32_t j) {
1917 void Assembler::daui(Register rs, Register rt, int32_t j) {
1923 void Assembler::dahi(Register rs, int32_t j) {
1929 void Assembler::dati(Register rs, int32_t j) {
1935 void Assembler::ldl(Register rd, const MemOperand& rs) {
1940 void Assembler::ldr(Register rd, const MemOperand& rs) {
1945 void Assembler::sdl(Register rd, const MemOperand& rs) {
1950 void Assembler::sdr(Register rd, const MemOperand& rs) {
1955 void Assembler::ld(Register rd, const MemOperand& rs) {
1965 void Assembler::sd(Register rd, const MemOperand& rs) {
1978 void Assembler::break_(uint32_t code, bool break_as_stop) {
1994 void Assembler::stop(const char* msg, uint32_t code) {
2009 void Assembler::tge(Register rs, Register rt, uint16_t code) {
2017 void Assembler::tgeu(Register rs, Register rt, uint16_t code) {
2025 void Assembler::tlt(Register rs, Register rt, uint16_t code) {
2033 void Assembler::tltu(Register rs, Register rt, uint16_t code) {
2042 void Assembler::teq(Register rs, Register rt, uint16_t code) {
2050 void Assembler::tne(Register rs, Register rt, uint16_t code) {
2060 void Assembler::mfhi(Register rd) {
2065 void Assembler::mflo(Register rd) {
2071 void Assembler::slt(Register rd, Register rs, Register rt) {
2076 void Assembler::sltu(Register rd, Register rs, Register rt) {
2081 void Assembler::slti(Register rt, Register rs, int32_t j) {
2086 void Assembler::sltiu(Register rt, Register rs, int32_t j) {
2092 void Assembler::movz(Register rd, Register rs, Register rt) {
2097 void Assembler::movn(Register rd, Register rs, Register rt) {
2102 void Assembler::movt(Register rd, Register rs, uint16_t cc) {
2109 void Assembler::movf(Register rd, Register rs, uint16_t cc) {
2116 void Assembler::sel(SecondaryField fmt, FPURegister fd,
2129 void Assembler::seleqz(Register rs, Register rt, Register rd) {
2136 void Assembler::seleqz(SecondaryField fmt, FPURegister fd,
2149 void Assembler::selnez(Register rs, Register rt, Register rd) {
2156 void Assembler::selnez(SecondaryField fmt, FPURegister fd,
2169 void Assembler::clz(Register rd, Register rs) {
2179 void Assembler::ins_(Register rt, Register rs, uint16_t pos, uint16_t size) {
2187 void Assembler::ext_(Register rt, Register rs, uint16_t pos, uint16_t size) {
2195 void Assembler::pref(int32_t hint, const MemOperand& rs) {
2206 void Assembler::lwc1(FPURegister fd, const MemOperand& src) {
2211 void Assembler::ldc1(FPURegister fd, const MemOperand& src) {
2216 void Assembler::swc1(FPURegister fd, const MemOperand& src) {
2221 void Assembler::sdc1(FPURegister fd, const MemOperand& src) {
2226 void Assembler::mtc1(Register rt, FPURegister fs) {
2231 void Assembler::mthc1(Register rt, FPURegister fs) {
2236 void Assembler::dmtc1(Register rt, FPURegister fs) {
2241 void Assembler::mfc1(Register rt, FPURegister fs) {
2246 void Assembler::mfhc1(Register rt, FPURegister fs) {
2251 void Assembler::dmfc1(Register rt, FPURegister fs) {
2256 void Assembler::ctc1(Register rt, FPUControlRegister fs) {
2261 void Assembler::cfc1(Register rt, FPUControlRegister fs) {
2266 void Assembler::DoubleAsTwoUInt32(double d, uint32_t* lo, uint32_t* hi) {
2277 void Assembler::add_d(FPURegister fd, FPURegister fs, FPURegister ft) {
2282 void Assembler::sub_d(FPURegister fd, FPURegister fs, FPURegister ft) {
2287 void Assembler::mul_d(FPURegister fd, FPURegister fs, FPURegister ft) {
2292 void Assembler::madd_d(FPURegister fd, FPURegister fr, FPURegister fs,
2298 void Assembler::div_d(FPURegister fd, FPURegister fs, FPURegister ft) {
2303 void Assembler::abs_d(FPURegister fd, FPURegister fs) {
2308 void Assembler::mov_d(FPURegister fd, FPURegister fs) {
2313 void Assembler::neg_d(FPURegister fd, FPURegister fs) {
2318 void Assembler::sqrt_d(FPURegister fd, FPURegister fs) {
2325 void Assembler::cvt_w_s(FPURegister fd, FPURegister fs) {
2330 void Assembler::cvt_w_d(FPURegister fd, FPURegister fs) {
2335 void Assembler::trunc_w_s(FPURegister fd, FPURegister fs) {
2340 void Assembler::trunc_w_d(FPURegister fd, FPURegister fs) {
2345 void Assembler::round_w_s(FPURegister fd, FPURegister fs) {
2350 void Assembler::round_w_d(FPURegister fd, FPURegister fs) {
2355 void Assembler::floor_w_s(FPURegister fd, FPURegister fs) {
2360 void Assembler::floor_w_d(FPURegister fd, FPURegister fs) {
2365 void Assembler::ceil_w_s(FPURegister fd, FPURegister fs) {
2370 void Assembler::ceil_w_d(FPURegister fd, FPURegister fs) {
2375 void Assembler::cvt_l_s(FPURegister fd, FPURegister fs) {
2381 void Assembler::cvt_l_d(FPURegister fd, FPURegister fs) {
2387 void Assembler::trunc_l_s(FPURegister fd, FPURegister fs) {
2393 void Assembler::trunc_l_d(FPURegister fd, FPURegister fs) {
2399 void Assembler::round_l_s(FPURegister fd, FPURegister fs) {
2404 void Assembler::round_l_d(FPURegister fd, FPURegister fs) {
2409 void Assembler::floor_l_s(FPURegister fd, FPURegister fs) {
2414 void Assembler::floor_l_d(FPURegister fd, FPURegister fs) {
2419 void Assembler::ceil_l_s(FPURegister fd, FPURegister fs) {
2424 void Assembler::ceil_l_d(FPURegister fd, FPURegister fs) {
2429 void Assembler::min(SecondaryField fmt, FPURegister fd, FPURegister ft,
2437 void Assembler::mina(SecondaryField fmt, FPURegister fd, FPURegister ft,
2445 void Assembler::max(SecondaryField fmt, FPURegister fd, FPURegister ft,
2453 void Assembler::maxa(SecondaryField fmt, FPURegister fd, FPURegister ft,
2461 void Assembler::cvt_s_w(FPURegister fd, FPURegister fs) {
2466 void Assembler::cvt_s_l(FPURegister fd, FPURegister fs) {
2472 void Assembler::cvt_s_d(FPURegister fd, FPURegister fs) {
2477 void Assembler::cvt_d_w(FPURegister fd, FPURegister fs) {
2482 void Assembler::cvt_d_l(FPURegister fd, FPURegister fs) {
2488 void Assembler::cvt_d_s(FPURegister fd, FPURegister fs) {
2494 void Assembler::cmp(FPUCondition cond, SecondaryField fmt,
2504 void Assembler::bc1eqz(int16_t offset, FPURegister ft) {
2511 void Assembler::bc1nez(int16_t offset, FPURegister ft) {
2519 void Assembler::c(FPUCondition cond, SecondaryField fmt,
2530 void Assembler::fcmp(FPURegister src1, const double src2,
2539 void Assembler::bc1f(int16_t offset, uint16_t cc) {
2546 void Assembler::bc1t(int16_t offset, uint16_t cc) {
2554 void Assembler::RecordJSReturn() {
2561 void Assembler::RecordDebugBreakSlot() {
2568 void Assembler::RecordComment(const char* msg) {
2576 int Assembler::RelocateInternalReference(byte* pc, intptr_t pc_delta) {
2580 Instr instr_lui = instr_at(pc + 0 * Assembler::kInstrSize);
2581 Instr instr_ori = instr_at(pc + 1 * Assembler::kInstrSize);
2582 Instr instr_ori2 = instr_at(pc + 3 * Assembler::kInstrSize);
2602 instr_at_put(pc + 0 * Assembler::kInstrSize,
2604 instr_at_put(pc + 1 * Assembler::kInstrSize,
2606 instr_at_put(pc + 3 * Assembler::kInstrSize,
2629 void Assembler::GrowBuffer() {
2676 void Assembler::db(uint8_t data) {
2683 void Assembler::dd(uint32_t data) {
2690 void Assembler::emit_code_stub_address(Code* stub) {
2698 void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data) {
2730 void Assembler::BlockTrampolinePoolFor(int instructions) {
2735 void Assembler::CheckTrampolinePool() {
2771 // TODO(plind): Verify this, presume I cannot use macro-assembler
2799 Address Assembler::target_address_at(Address pc) {
2805 // Assembler::set_target_address_at() just below.
2828 void Assembler::QuietNaN(HeapObject* object) {
2845 void Assembler::set_target_address_at(Address pc,
2878 CpuFeatures::FlushICache(pc, 4 * Assembler::kInstrSize);
2883 void Assembler::JumpLabelToJumpRegister(Address pc) {
2917 Handle<ConstantPoolArray> Assembler::NewConstantPool(Isolate* isolate) {
2924 void Assembler::PopulateConstantPool(ConstantPoolArray* constant_pool) {