Lines Matching refs:rt
257 Register rt, in EmitR() argument
262 CHECK_NE(rt, kNoRegister); in EmitR()
266 static_cast<uint32_t>(rt) << kRtShift | in EmitR()
274 uint32_t MipsAssembler::EmitI(int opcode, Register rs, Register rt, uint16_t imm) { in EmitI() argument
276 CHECK_NE(rt, kNoRegister); in EmitI()
279 static_cast<uint32_t>(rt) << kRtShift | in EmitI()
454 void MipsAssembler::Addu(Register rd, Register rs, Register rt) { in Addu() argument
455 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x21)).GprOuts(rd).GprIns(rs, rt); in Addu()
458 void MipsAssembler::Addiu(Register rt, Register rs, uint16_t imm16, MipsLabel* patcher_label) { in Addiu() argument
462 DsFsmInstr(EmitI(0x9, rs, rt, imm16), patcher_label).GprOuts(rt).GprIns(rs); in Addiu()
465 void MipsAssembler::Addiu(Register rt, Register rs, uint16_t imm16) { in Addiu() argument
466 Addiu(rt, rs, imm16, /* patcher_label= */ nullptr); in Addiu()
469 void MipsAssembler::Subu(Register rd, Register rs, Register rt) { in Subu() argument
470 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x23)).GprOuts(rd).GprIns(rs, rt); in Subu()
473 void MipsAssembler::MultR2(Register rs, Register rt) { in MultR2() argument
475 DsFsmInstr(EmitR(0, rs, rt, static_cast<Register>(0), 0, 0x18)).GprIns(rs, rt); in MultR2()
478 void MipsAssembler::MultuR2(Register rs, Register rt) { in MultuR2() argument
480 DsFsmInstr(EmitR(0, rs, rt, static_cast<Register>(0), 0, 0x19)).GprIns(rs, rt); in MultuR2()
483 void MipsAssembler::DivR2(Register rs, Register rt) { in DivR2() argument
485 DsFsmInstr(EmitR(0, rs, rt, static_cast<Register>(0), 0, 0x1a)).GprIns(rs, rt); in DivR2()
488 void MipsAssembler::DivuR2(Register rs, Register rt) { in DivuR2() argument
490 DsFsmInstr(EmitR(0, rs, rt, static_cast<Register>(0), 0, 0x1b)).GprIns(rs, rt); in DivuR2()
493 void MipsAssembler::MulR2(Register rd, Register rs, Register rt) { in MulR2() argument
495 DsFsmInstr(EmitR(0x1c, rs, rt, rd, 0, 2)).GprOuts(rd).GprIns(rs, rt); in MulR2()
498 void MipsAssembler::DivR2(Register rd, Register rs, Register rt) { in DivR2() argument
500 DivR2(rs, rt); in DivR2()
504 void MipsAssembler::ModR2(Register rd, Register rs, Register rt) { in ModR2() argument
506 DivR2(rs, rt); in ModR2()
510 void MipsAssembler::DivuR2(Register rd, Register rs, Register rt) { in DivuR2() argument
512 DivuR2(rs, rt); in DivuR2()
516 void MipsAssembler::ModuR2(Register rd, Register rs, Register rt) { in ModuR2() argument
518 DivuR2(rs, rt); in ModuR2()
522 void MipsAssembler::MulR6(Register rd, Register rs, Register rt) { in MulR6() argument
524 DsFsmInstr(EmitR(0, rs, rt, rd, 2, 0x18)).GprOuts(rd).GprIns(rs, rt); in MulR6()
527 void MipsAssembler::MuhR6(Register rd, Register rs, Register rt) { in MuhR6() argument
529 DsFsmInstr(EmitR(0, rs, rt, rd, 3, 0x18)).GprOuts(rd).GprIns(rs, rt); in MuhR6()
532 void MipsAssembler::MuhuR6(Register rd, Register rs, Register rt) { in MuhuR6() argument
534 DsFsmInstr(EmitR(0, rs, rt, rd, 3, 0x19)).GprOuts(rd).GprIns(rs, rt); in MuhuR6()
537 void MipsAssembler::DivR6(Register rd, Register rs, Register rt) { in DivR6() argument
539 DsFsmInstr(EmitR(0, rs, rt, rd, 2, 0x1a)).GprOuts(rd).GprIns(rs, rt); in DivR6()
542 void MipsAssembler::ModR6(Register rd, Register rs, Register rt) { in ModR6() argument
544 DsFsmInstr(EmitR(0, rs, rt, rd, 3, 0x1a)).GprOuts(rd).GprIns(rs, rt); in ModR6()
547 void MipsAssembler::DivuR6(Register rd, Register rs, Register rt) { in DivuR6() argument
549 DsFsmInstr(EmitR(0, rs, rt, rd, 2, 0x1b)).GprOuts(rd).GprIns(rs, rt); in DivuR6()
552 void MipsAssembler::ModuR6(Register rd, Register rs, Register rt) { in ModuR6() argument
554 DsFsmInstr(EmitR(0, rs, rt, rd, 3, 0x1b)).GprOuts(rd).GprIns(rs, rt); in ModuR6()
557 void MipsAssembler::And(Register rd, Register rs, Register rt) { in And() argument
558 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x24)).GprOuts(rd).GprIns(rs, rt); in And()
561 void MipsAssembler::Andi(Register rt, Register rs, uint16_t imm16) { in Andi() argument
562 DsFsmInstr(EmitI(0xc, rs, rt, imm16)).GprOuts(rt).GprIns(rs); in Andi()
565 void MipsAssembler::Or(Register rd, Register rs, Register rt) { in Or() argument
566 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x25)).GprOuts(rd).GprIns(rs, rt); in Or()
569 void MipsAssembler::Ori(Register rt, Register rs, uint16_t imm16) { in Ori() argument
570 DsFsmInstr(EmitI(0xd, rs, rt, imm16)).GprOuts(rt).GprIns(rs); in Ori()
573 void MipsAssembler::Xor(Register rd, Register rs, Register rt) { in Xor() argument
574 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x26)).GprOuts(rd).GprIns(rs, rt); in Xor()
577 void MipsAssembler::Xori(Register rt, Register rs, uint16_t imm16) { in Xori() argument
578 DsFsmInstr(EmitI(0xe, rs, rt, imm16)).GprOuts(rt).GprIns(rs); in Xori()
581 void MipsAssembler::Nor(Register rd, Register rs, Register rt) { in Nor() argument
582 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x27)).GprOuts(rd).GprIns(rs, rt); in Nor()
585 void MipsAssembler::Movz(Register rd, Register rs, Register rt) { in Movz() argument
587 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x0A)).GprInOuts(rd).GprIns(rs, rt); in Movz()
590 void MipsAssembler::Movn(Register rd, Register rs, Register rt) { in Movn() argument
592 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x0B)).GprInOuts(rd).GprIns(rs, rt); in Movn()
595 void MipsAssembler::Seleqz(Register rd, Register rs, Register rt) { in Seleqz() argument
597 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x35)).GprOuts(rd).GprIns(rs, rt); in Seleqz()
600 void MipsAssembler::Selnez(Register rd, Register rs, Register rt) { in Selnez() argument
602 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x37)).GprOuts(rd).GprIns(rs, rt); in Selnez()
625 void MipsAssembler::Seb(Register rd, Register rt) { in Seb() argument
626 DsFsmInstr(EmitR(0x1f, static_cast<Register>(0), rt, rd, 0x10, 0x20)).GprOuts(rd).GprIns(rt); in Seb()
629 void MipsAssembler::Seh(Register rd, Register rt) { in Seh() argument
630 DsFsmInstr(EmitR(0x1f, static_cast<Register>(0), rt, rd, 0x18, 0x20)).GprOuts(rd).GprIns(rt); in Seh()
633 void MipsAssembler::Wsbh(Register rd, Register rt) { in Wsbh() argument
634 DsFsmInstr(EmitR(0x1f, static_cast<Register>(0), rt, rd, 2, 0x20)).GprOuts(rd).GprIns(rt); in Wsbh()
637 void MipsAssembler::Bitswap(Register rd, Register rt) { in Bitswap() argument
639 DsFsmInstr(EmitR(0x1f, static_cast<Register>(0), rt, rd, 0x0, 0x20)).GprOuts(rd).GprIns(rt); in Bitswap()
642 void MipsAssembler::Sll(Register rd, Register rt, int shamt) { in Sll() argument
644 DsFsmInstr(EmitR(0, static_cast<Register>(0), rt, rd, shamt, 0x00)).GprOuts(rd).GprIns(rt); in Sll()
647 void MipsAssembler::Srl(Register rd, Register rt, int shamt) { in Srl() argument
649 DsFsmInstr(EmitR(0, static_cast<Register>(0), rt, rd, shamt, 0x02)).GprOuts(rd).GprIns(rt); in Srl()
652 void MipsAssembler::Rotr(Register rd, Register rt, int shamt) { in Rotr() argument
654 DsFsmInstr(EmitR(0, static_cast<Register>(1), rt, rd, shamt, 0x02)).GprOuts(rd).GprIns(rt); in Rotr()
657 void MipsAssembler::Sra(Register rd, Register rt, int shamt) { in Sra() argument
659 DsFsmInstr(EmitR(0, static_cast<Register>(0), rt, rd, shamt, 0x03)).GprOuts(rd).GprIns(rt); in Sra()
662 void MipsAssembler::Sllv(Register rd, Register rt, Register rs) { in Sllv() argument
663 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x04)).GprOuts(rd).GprIns(rs, rt); in Sllv()
666 void MipsAssembler::Srlv(Register rd, Register rt, Register rs) { in Srlv() argument
667 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x06)).GprOuts(rd).GprIns(rs, rt); in Srlv()
670 void MipsAssembler::Rotrv(Register rd, Register rt, Register rs) { in Rotrv() argument
671 DsFsmInstr(EmitR(0, rs, rt, rd, 1, 0x06)).GprOuts(rd).GprIns(rs, rt); in Rotrv()
674 void MipsAssembler::Srav(Register rd, Register rt, Register rs) { in Srav() argument
675 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x07)).GprOuts(rd).GprIns(rs, rt); in Srav()
678 void MipsAssembler::Ext(Register rd, Register rt, int pos, int size) { in Ext() argument
682 DsFsmInstr(EmitR(0x1f, rt, rd, static_cast<Register>(size - 1), pos, 0x00)) in Ext()
683 .GprOuts(rd).GprIns(rt); in Ext()
686 void MipsAssembler::Ins(Register rd, Register rt, int pos, int size) { in Ins() argument
690 DsFsmInstr(EmitR(0x1f, rt, rd, static_cast<Register>(pos + size - 1), pos, 0x04)) in Ins()
691 .GprInOuts(rd).GprIns(rt); in Ins()
694 void MipsAssembler::Lsa(Register rd, Register rs, Register rt, int saPlusOne) { in Lsa() argument
698 DsFsmInstr(EmitR(0x0, rs, rt, rd, sa, 0x05)).GprOuts(rd).GprIns(rs, rt); in Lsa()
719 void MipsAssembler::Lb(Register rt, Register rs, uint16_t imm16) { in Lb() argument
720 DsFsmInstr(EmitI(0x20, rs, rt, imm16)).GprOuts(rt).GprIns(rs); in Lb()
723 void MipsAssembler::Lh(Register rt, Register rs, uint16_t imm16) { in Lh() argument
724 DsFsmInstr(EmitI(0x21, rs, rt, imm16)).GprOuts(rt).GprIns(rs); in Lh()
727 void MipsAssembler::Lw(Register rt, Register rs, uint16_t imm16, MipsLabel* patcher_label) { in Lw() argument
731 DsFsmInstr(EmitI(0x23, rs, rt, imm16), patcher_label).GprOuts(rt).GprIns(rs); in Lw()
734 void MipsAssembler::Lw(Register rt, Register rs, uint16_t imm16) { in Lw() argument
735 Lw(rt, rs, imm16, /* patcher_label= */ nullptr); in Lw()
738 void MipsAssembler::Lwl(Register rt, Register rs, uint16_t imm16) { in Lwl() argument
740 DsFsmInstr(EmitI(0x22, rs, rt, imm16)).GprInOuts(rt).GprIns(rs); in Lwl()
743 void MipsAssembler::Lwr(Register rt, Register rs, uint16_t imm16) { in Lwr() argument
745 DsFsmInstr(EmitI(0x26, rs, rt, imm16)).GprInOuts(rt).GprIns(rs); in Lwr()
748 void MipsAssembler::Lbu(Register rt, Register rs, uint16_t imm16) { in Lbu() argument
749 DsFsmInstr(EmitI(0x24, rs, rt, imm16)).GprOuts(rt).GprIns(rs); in Lbu()
752 void MipsAssembler::Lhu(Register rt, Register rs, uint16_t imm16) { in Lhu() argument
753 DsFsmInstr(EmitI(0x25, rs, rt, imm16)).GprOuts(rt).GprIns(rs); in Lhu()
762 void MipsAssembler::Lui(Register rt, uint16_t imm16) { in Lui() argument
763 DsFsmInstr(EmitI(0xf, static_cast<Register>(0), rt, imm16)).GprOuts(rt); in Lui()
766 void MipsAssembler::Aui(Register rt, Register rs, uint16_t imm16) { in Aui() argument
768 DsFsmInstr(EmitI(0xf, rs, rt, imm16)).GprOuts(rt).GprIns(rs); in Aui()
771 void MipsAssembler::AddUpper(Register rt, Register rs, uint16_t imm16, Register tmp) { in AddUpper() argument
772 bool increment = (rs == rt); in AddUpper()
777 Aui(rt, rs, imm16); in AddUpper()
780 Addu(rt, rs, tmp); in AddUpper()
782 Lui(rt, imm16); in AddUpper()
783 Addu(rt, rs, rt); in AddUpper()
801 void MipsAssembler::Sb(Register rt, Register rs, uint16_t imm16) { in Sb() argument
802 DsFsmInstr(EmitI(0x28, rs, rt, imm16)).GprIns(rt, rs); in Sb()
805 void MipsAssembler::Sh(Register rt, Register rs, uint16_t imm16) { in Sh() argument
806 DsFsmInstr(EmitI(0x29, rs, rt, imm16)).GprIns(rt, rs); in Sh()
809 void MipsAssembler::Sw(Register rt, Register rs, uint16_t imm16, MipsLabel* patcher_label) { in Sw() argument
813 DsFsmInstr(EmitI(0x2b, rs, rt, imm16), patcher_label).GprIns(rt, rs); in Sw()
816 void MipsAssembler::Sw(Register rt, Register rs, uint16_t imm16) { in Sw() argument
817 Sw(rt, rs, imm16, /* patcher_label= */ nullptr); in Sw()
820 void MipsAssembler::Swl(Register rt, Register rs, uint16_t imm16) { in Swl() argument
822 DsFsmInstr(EmitI(0x2a, rs, rt, imm16)).GprIns(rt, rs); in Swl()
825 void MipsAssembler::Swr(Register rt, Register rs, uint16_t imm16) { in Swr() argument
827 DsFsmInstr(EmitI(0x2e, rs, rt, imm16)).GprIns(rt, rs); in Swr()
830 void MipsAssembler::LlR2(Register rt, Register base, int16_t imm16) { in LlR2() argument
832 DsFsmInstr(EmitI(0x30, base, rt, imm16)).GprOuts(rt).GprIns(base); in LlR2()
835 void MipsAssembler::ScR2(Register rt, Register base, int16_t imm16) { in ScR2() argument
837 DsFsmInstr(EmitI(0x38, base, rt, imm16)).GprInOuts(rt).GprIns(base); in ScR2()
840 void MipsAssembler::LlR6(Register rt, Register base, int16_t imm9) { in LlR6() argument
843 DsFsmInstr(EmitI(0x1f, base, rt, ((imm9 & 0x1ff) << 7) | 0x36)).GprOuts(rt).GprIns(base); in LlR6()
846 void MipsAssembler::ScR6(Register rt, Register base, int16_t imm9) { in ScR6() argument
849 DsFsmInstr(EmitI(0x1f, base, rt, ((imm9 & 0x1ff) << 7) | 0x26)).GprInOuts(rt).GprIns(base); in ScR6()
852 void MipsAssembler::Slt(Register rd, Register rs, Register rt) { in Slt() argument
853 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x2a)).GprOuts(rd).GprIns(rs, rt); in Slt()
856 void MipsAssembler::Sltu(Register rd, Register rs, Register rt) { in Sltu() argument
857 DsFsmInstr(EmitR(0, rs, rt, rd, 0, 0x2b)).GprOuts(rd).GprIns(rs, rt); in Sltu()
860 void MipsAssembler::Slti(Register rt, Register rs, uint16_t imm16) { in Slti() argument
861 DsFsmInstr(EmitI(0xa, rs, rt, imm16)).GprOuts(rt).GprIns(rs); in Slti()
864 void MipsAssembler::Sltiu(Register rt, Register rs, uint16_t imm16) { in Sltiu() argument
865 DsFsmInstr(EmitI(0xb, rs, rt, imm16)).GprOuts(rt).GprIns(rs); in Sltiu()
876 void MipsAssembler::Beq(Register rs, Register rt, uint16_t imm16) { in Beq() argument
877 DsFsmInstrNop(EmitI(0x4, rs, rt, imm16)); in Beq()
880 void MipsAssembler::Bne(Register rs, Register rt, uint16_t imm16) { in Bne() argument
881 DsFsmInstrNop(EmitI(0x5, rs, rt, imm16)); in Bne()
884 void MipsAssembler::Beqz(Register rt, uint16_t imm16) { in Beqz() argument
885 Beq(rt, ZERO, imm16); in Beqz()
888 void MipsAssembler::Bnez(Register rt, uint16_t imm16) { in Bnez() argument
889 Bne(rt, ZERO, imm16); in Bnez()
892 void MipsAssembler::Bltz(Register rt, uint16_t imm16) { in Bltz() argument
893 DsFsmInstrNop(EmitI(0x1, rt, static_cast<Register>(0), imm16)); in Bltz()
896 void MipsAssembler::Bgez(Register rt, uint16_t imm16) { in Bgez() argument
897 DsFsmInstrNop(EmitI(0x1, rt, static_cast<Register>(0x1), imm16)); in Bgez()
900 void MipsAssembler::Blez(Register rt, uint16_t imm16) { in Blez() argument
901 DsFsmInstrNop(EmitI(0x6, rt, static_cast<Register>(0), imm16)); in Blez()
904 void MipsAssembler::Bgtz(Register rt, uint16_t imm16) { in Bgtz() argument
905 DsFsmInstrNop(EmitI(0x7, rt, static_cast<Register>(0), imm16)); in Bgtz()
1004 void MipsAssembler::Jic(Register rt, uint16_t imm16) { in Jic() argument
1006 DsFsmInstrNop(EmitI(0x36, static_cast<Register>(0), rt, imm16)); in Jic()
1009 void MipsAssembler::Jialc(Register rt, uint16_t imm16) { in Jialc() argument
1011 DsFsmInstrNop(EmitI(0x3E, static_cast<Register>(0), rt, imm16)); in Jialc()
1014 void MipsAssembler::Bltc(Register rs, Register rt, uint16_t imm16) { in Bltc() argument
1017 CHECK_NE(rt, ZERO); in Bltc()
1018 CHECK_NE(rs, rt); in Bltc()
1019 DsFsmInstrNop(EmitI(0x17, rs, rt, imm16)); in Bltc()
1022 void MipsAssembler::Bltzc(Register rt, uint16_t imm16) { in Bltzc() argument
1024 CHECK_NE(rt, ZERO); in Bltzc()
1025 DsFsmInstrNop(EmitI(0x17, rt, rt, imm16)); in Bltzc()
1028 void MipsAssembler::Bgtzc(Register rt, uint16_t imm16) { in Bgtzc() argument
1030 CHECK_NE(rt, ZERO); in Bgtzc()
1031 DsFsmInstrNop(EmitI(0x17, static_cast<Register>(0), rt, imm16)); in Bgtzc()
1034 void MipsAssembler::Bgec(Register rs, Register rt, uint16_t imm16) { in Bgec() argument
1037 CHECK_NE(rt, ZERO); in Bgec()
1038 CHECK_NE(rs, rt); in Bgec()
1039 DsFsmInstrNop(EmitI(0x16, rs, rt, imm16)); in Bgec()
1042 void MipsAssembler::Bgezc(Register rt, uint16_t imm16) { in Bgezc() argument
1044 CHECK_NE(rt, ZERO); in Bgezc()
1045 DsFsmInstrNop(EmitI(0x16, rt, rt, imm16)); in Bgezc()
1048 void MipsAssembler::Blezc(Register rt, uint16_t imm16) { in Blezc() argument
1050 CHECK_NE(rt, ZERO); in Blezc()
1051 DsFsmInstrNop(EmitI(0x16, static_cast<Register>(0), rt, imm16)); in Blezc()
1054 void MipsAssembler::Bltuc(Register rs, Register rt, uint16_t imm16) { in Bltuc() argument
1057 CHECK_NE(rt, ZERO); in Bltuc()
1058 CHECK_NE(rs, rt); in Bltuc()
1059 DsFsmInstrNop(EmitI(0x7, rs, rt, imm16)); in Bltuc()
1062 void MipsAssembler::Bgeuc(Register rs, Register rt, uint16_t imm16) { in Bgeuc() argument
1065 CHECK_NE(rt, ZERO); in Bgeuc()
1066 CHECK_NE(rs, rt); in Bgeuc()
1067 DsFsmInstrNop(EmitI(0x6, rs, rt, imm16)); in Bgeuc()
1070 void MipsAssembler::Beqc(Register rs, Register rt, uint16_t imm16) { in Beqc() argument
1073 CHECK_NE(rt, ZERO); in Beqc()
1074 CHECK_NE(rs, rt); in Beqc()
1075 DsFsmInstrNop(EmitI(0x8, std::min(rs, rt), std::max(rs, rt), imm16)); in Beqc()
1078 void MipsAssembler::Bnec(Register rs, Register rt, uint16_t imm16) { in Bnec() argument
1081 CHECK_NE(rt, ZERO); in Bnec()
1082 CHECK_NE(rs, rt); in Bnec()
1083 DsFsmInstrNop(EmitI(0x18, std::min(rs, rt), std::max(rs, rt), imm16)); in Bnec()
1108 void MipsAssembler::EmitBcondR2(BranchCondition cond, Register rs, Register rt, uint16_t imm16) { in EmitBcondR2() argument
1111 CHECK_EQ(rt, ZERO); in EmitBcondR2()
1115 CHECK_EQ(rt, ZERO); in EmitBcondR2()
1119 CHECK_EQ(rt, ZERO); in EmitBcondR2()
1123 CHECK_EQ(rt, ZERO); in EmitBcondR2()
1127 Beq(rs, rt, imm16); in EmitBcondR2()
1130 Bne(rs, rt, imm16); in EmitBcondR2()
1133 CHECK_EQ(rt, ZERO); in EmitBcondR2()
1137 CHECK_EQ(rt, ZERO); in EmitBcondR2()
1141 CHECK_EQ(rt, ZERO); in EmitBcondR2()
1145 CHECK_EQ(rt, ZERO); in EmitBcondR2()
1162 void MipsAssembler::EmitBcondR6(BranchCondition cond, Register rs, Register rt, uint32_t imm16_21) { in EmitBcondR6() argument
1165 Bltc(rs, rt, imm16_21); in EmitBcondR6()
1168 Bgec(rs, rt, imm16_21); in EmitBcondR6()
1171 Bgec(rt, rs, imm16_21); in EmitBcondR6()
1174 Bltc(rt, rs, imm16_21); in EmitBcondR6()
1177 CHECK_EQ(rt, ZERO); in EmitBcondR6()
1181 CHECK_EQ(rt, ZERO); in EmitBcondR6()
1185 CHECK_EQ(rt, ZERO); in EmitBcondR6()
1189 CHECK_EQ(rt, ZERO); in EmitBcondR6()
1193 Beqc(rs, rt, imm16_21); in EmitBcondR6()
1196 Bnec(rs, rt, imm16_21); in EmitBcondR6()
1199 CHECK_EQ(rt, ZERO); in EmitBcondR6()
1203 CHECK_EQ(rt, ZERO); in EmitBcondR6()
1207 Bltuc(rs, rt, imm16_21); in EmitBcondR6()
1210 Bgeuc(rs, rt, imm16_21); in EmitBcondR6()
1213 CHECK_EQ(rt, ZERO); in EmitBcondR6()
1217 CHECK_EQ(rt, ZERO); in EmitBcondR6()
1586 void MipsAssembler::MovzS(FRegister fd, FRegister fs, Register rt) { in MovzS() argument
1588 DsFsmInstr(EmitFR(0x11, 0x10, static_cast<FRegister>(rt), fs, fd, 0x12)) in MovzS()
1589 .FprInOuts(fd).FprIns(fs).GprIns(rt); in MovzS()
1592 void MipsAssembler::MovzD(FRegister fd, FRegister fs, Register rt) { in MovzD() argument
1594 DsFsmInstr(EmitFR(0x11, 0x11, static_cast<FRegister>(rt), fs, fd, 0x12)) in MovzD()
1595 .FprInOuts(fd).FprIns(fs).GprIns(rt); in MovzD()
1598 void MipsAssembler::MovnS(FRegister fd, FRegister fs, Register rt) { in MovnS() argument
1600 DsFsmInstr(EmitFR(0x11, 0x10, static_cast<FRegister>(rt), fs, fd, 0x13)) in MovnS()
1601 .FprInOuts(fd).FprIns(fs).GprIns(rt); in MovnS()
1604 void MipsAssembler::MovnD(FRegister fd, FRegister fs, Register rt) { in MovnD() argument
1606 DsFsmInstr(EmitFR(0x11, 0x11, static_cast<FRegister>(rt), fs, fd, 0x13)) in MovnD()
1607 .FprInOuts(fd).FprIns(fs).GprIns(rt); in MovnD()
1727 void MipsAssembler::Mfc1(Register rt, FRegister fs) { in Mfc1() argument
1728 DsFsmInstr(EmitFR(0x11, 0x00, static_cast<FRegister>(rt), fs, static_cast<FRegister>(0), 0x0)) in Mfc1()
1729 .GprOuts(rt).FprIns(GetFpuRegLow(fs)); in Mfc1()
1734 void MipsAssembler::Mtc1(Register rt, FRegister fs) { in Mtc1() argument
1736 EmitFR(0x11, 0x04, static_cast<FRegister>(rt), fs, static_cast<FRegister>(0), 0x0); in Mtc1()
1740 DsFsmInstr(encoding).FprInOuts(GetFpuRegLow(fs)).GprIns(rt); in Mtc1()
1743 DsFsmInstr(encoding).FprOuts(fs).GprIns(rt); in Mtc1()
1747 void MipsAssembler::Mfhc1(Register rt, FRegister fs) { in Mfhc1() argument
1748 DsFsmInstr(EmitFR(0x11, 0x03, static_cast<FRegister>(rt), fs, static_cast<FRegister>(0), 0x0)) in Mfhc1()
1749 .GprOuts(rt).FprIns(fs); in Mfhc1()
1754 void MipsAssembler::Mthc1(Register rt, FRegister fs) { in Mthc1() argument
1755 DsFsmInstr(EmitFR(0x11, 0x07, static_cast<FRegister>(rt), fs, static_cast<FRegister>(0), 0x0)) in Mthc1()
1756 .FprInOuts(fs).GprIns(rt); in Mthc1()
1759 void MipsAssembler::MoveFromFpuHigh(Register rt, FRegister fs) { in MoveFromFpuHigh() argument
1762 Mfc1(rt, static_cast<FRegister>(fs + 1)); in MoveFromFpuHigh()
1764 Mfhc1(rt, fs); in MoveFromFpuHigh()
1768 void MipsAssembler::MoveToFpuHigh(Register rt, FRegister fs) { in MoveToFpuHigh() argument
1771 Mtc1(rt, static_cast<FRegister>(fs + 1)); in MoveToFpuHigh()
1773 Mthc1(rt, fs); in MoveToFpuHigh()
1839 void MipsAssembler::PopAndReturn(Register rd, Register rt) { in PopAndReturn() argument
1842 Jr(rt); in PopAndReturn()
2878 void MipsAssembler::Addiu32(Register rt, Register rs, int32_t value, Register temp) { in Addiu32() argument
2881 Addiu(rt, rs, value); in Addiu32()
2888 Addiu(rt, temp, low); in Addiu32()
2890 Aui(rt, rs, high); in Addiu32()
2899 Addiu(rt, temp, value - kMaxValueForSimpleAdjustment / 2); in Addiu32()
2902 Addiu(rt, temp, value - kMinValueForSimpleAdjustment / 2); in Addiu32()
2906 Addu(rt, rs, temp); in Addiu32()
4310 void MipsAssembler::Beq(Register rs, Register rt, MipsLabel* label, bool is_bare) { in Beq() argument
4311 Bcond(label, /* is_r6= */ (IsR6() && !is_bare), is_bare, kCondEQ, rs, rt); in Beq()
4314 void MipsAssembler::Bne(Register rs, Register rt, MipsLabel* label, bool is_bare) { in Bne() argument
4315 Bcond(label, /* is_r6= */ (IsR6() && !is_bare), is_bare, kCondNE, rs, rt); in Bne()
4318 void MipsAssembler::Beqz(Register rt, MipsLabel* label, bool is_bare) { in Beqz() argument
4319 Bcond(label, /* is_r6= */ (IsR6() && !is_bare), is_bare, kCondEQZ, rt); in Beqz()
4322 void MipsAssembler::Bnez(Register rt, MipsLabel* label, bool is_bare) { in Bnez() argument
4323 Bcond(label, /* is_r6= */ (IsR6() && !is_bare), is_bare, kCondNEZ, rt); in Bnez()
4326 void MipsAssembler::Bltz(Register rt, MipsLabel* label, bool is_bare) { in Bltz() argument
4327 Bcond(label, /* is_r6= */ (IsR6() && !is_bare), is_bare, kCondLTZ, rt); in Bltz()
4330 void MipsAssembler::Bgez(Register rt, MipsLabel* label, bool is_bare) { in Bgez() argument
4331 Bcond(label, /* is_r6= */ (IsR6() && !is_bare), is_bare, kCondGEZ, rt); in Bgez()
4334 void MipsAssembler::Blez(Register rt, MipsLabel* label, bool is_bare) { in Blez() argument
4335 Bcond(label, /* is_r6= */ (IsR6() && !is_bare), is_bare, kCondLEZ, rt); in Blez()
4338 void MipsAssembler::Bgtz(Register rt, MipsLabel* label, bool is_bare) { in Bgtz() argument
4339 Bcond(label, /* is_r6= */ (IsR6() && !is_bare), is_bare, kCondGTZ, rt); in Bgtz()
4342 bool MipsAssembler::CanExchangeWithSlt(Register rs, Register rt) const { in CanExchangeWithSlt()
4349 (delay_slot_.masks_.gpr_outs_ & ((1u << AT) | (1u << rs) | (1u << rt))) == 0 && in CanExchangeWithSlt()
4370 void MipsAssembler::GenerateSltForCondBranch(bool unsigned_slt, Register rs, Register rt) { in GenerateSltForCondBranch() argument
4374 bool exchange = CanExchangeWithSlt(rs, rt); in GenerateSltForCondBranch()
4381 Sltu(AT, rs, rt); in GenerateSltForCondBranch()
4383 Slt(AT, rs, rt); in GenerateSltForCondBranch()
4390 void MipsAssembler::Blt(Register rs, Register rt, MipsLabel* label, bool is_bare) { in Blt() argument
4392 Bcond(label, IsR6(), is_bare, kCondLT, rs, rt); in Blt()
4393 } else if (!Branch::IsNop(kCondLT, rs, rt)) { in Blt()
4395 GenerateSltForCondBranch(/* unsigned_slt= */ false, rs, rt); in Blt()
4400 void MipsAssembler::Bge(Register rs, Register rt, MipsLabel* label, bool is_bare) { in Bge() argument
4402 Bcond(label, IsR6(), is_bare, kCondGE, rs, rt); in Bge()
4403 } else if (Branch::IsUncond(kCondGE, rs, rt)) { in Bge()
4407 GenerateSltForCondBranch(/* unsigned_slt= */ false, rs, rt); in Bge()
4412 void MipsAssembler::Bltu(Register rs, Register rt, MipsLabel* label, bool is_bare) { in Bltu() argument
4414 Bcond(label, IsR6(), is_bare, kCondLTU, rs, rt); in Bltu()
4415 } else if (!Branch::IsNop(kCondLTU, rs, rt)) { in Bltu()
4417 GenerateSltForCondBranch(/* unsigned_slt= */ true, rs, rt); in Bltu()
4422 void MipsAssembler::Bgeu(Register rs, Register rt, MipsLabel* label, bool is_bare) { in Bgeu() argument
4424 Bcond(label, IsR6(), is_bare, kCondGEU, rs, rt); in Bgeu()
4425 } else if (Branch::IsUncond(kCondGEU, rs, rt)) { in Bgeu()
4429 GenerateSltForCondBranch(/* unsigned_slt= */ true, rs, rt); in Bgeu()
4460 void MipsAssembler::Beqc(Register rs, Register rt, MipsLabel* label, bool is_bare) { in Beqc() argument
4461 Bcond(label, /* is_r6= */ true, is_bare, kCondEQ, rs, rt); in Beqc()
4464 void MipsAssembler::Bnec(Register rs, Register rt, MipsLabel* label, bool is_bare) { in Bnec() argument
4465 Bcond(label, /* is_r6= */ true, is_bare, kCondNE, rs, rt); in Bnec()
4468 void MipsAssembler::Beqzc(Register rt, MipsLabel* label, bool is_bare) { in Beqzc() argument
4469 Bcond(label, /* is_r6= */ true, is_bare, kCondEQZ, rt); in Beqzc()
4472 void MipsAssembler::Bnezc(Register rt, MipsLabel* label, bool is_bare) { in Bnezc() argument
4473 Bcond(label, /* is_r6= */ true, is_bare, kCondNEZ, rt); in Bnezc()
4476 void MipsAssembler::Bltzc(Register rt, MipsLabel* label, bool is_bare) { in Bltzc() argument
4477 Bcond(label, /* is_r6= */ true, is_bare, kCondLTZ, rt); in Bltzc()
4480 void MipsAssembler::Bgezc(Register rt, MipsLabel* label, bool is_bare) { in Bgezc() argument
4481 Bcond(label, /* is_r6= */ true, is_bare, kCondGEZ, rt); in Bgezc()
4484 void MipsAssembler::Blezc(Register rt, MipsLabel* label, bool is_bare) { in Blezc() argument
4485 Bcond(label, /* is_r6= */ true, is_bare, kCondLEZ, rt); in Blezc()
4488 void MipsAssembler::Bgtzc(Register rt, MipsLabel* label, bool is_bare) { in Bgtzc() argument
4489 Bcond(label, /* is_r6= */ true, is_bare, kCondGTZ, rt); in Bgtzc()
4492 void MipsAssembler::Bltc(Register rs, Register rt, MipsLabel* label, bool is_bare) { in Bltc() argument
4493 Bcond(label, /* is_r6= */ true, is_bare, kCondLT, rs, rt); in Bltc()
4496 void MipsAssembler::Bgec(Register rs, Register rt, MipsLabel* label, bool is_bare) { in Bgec() argument
4497 Bcond(label, /* is_r6= */ true, is_bare, kCondGE, rs, rt); in Bgec()
4500 void MipsAssembler::Bltuc(Register rs, Register rt, MipsLabel* label, bool is_bare) { in Bltuc() argument
4501 Bcond(label, /* is_r6= */ true, is_bare, kCondLTU, rs, rt); in Bltuc()
4504 void MipsAssembler::Bgeuc(Register rs, Register rt, MipsLabel* label, bool is_bare) { in Bgeuc() argument
4505 Bcond(label, /* is_r6= */ true, is_bare, kCondGEU, rs, rt); in Bgeuc()