Lines Matching refs:rd

343 void TurboAssembler::Add_w(Register rd, Register rj, const Operand& rk) {
345 add_w(rd, rj, rk.rm());
348 addi_w(rd, rj, static_cast<int32_t>(rk.immediate()));
355 add_w(rd, rj, scratch);
360 void TurboAssembler::Add_d(Register rd, Register rj, const Operand& rk) {
362 add_d(rd, rj, rk.rm());
365 addi_d(rd, rj, static_cast<int32_t>(rk.immediate()));
372 add_d(rd, rj, scratch);
377 void TurboAssembler::Sub_w(Register rd, Register rj, const Operand& rk) {
379 sub_w(rd, rj, rk.rm());
384 addi_w(rd, rj, static_cast<int32_t>(-rk.immediate()));
392 add_w(rd, rj, scratch);
396 sub_w(rd, rj, scratch);
402 void TurboAssembler::Sub_d(Register rd, Register rj, const Operand& rk) {
404 sub_d(rd, rj, rk.rm());
407 addi_d(rd, rj, static_cast<int32_t>(-rk.immediate()));
418 add_d(rd, rj, scratch);
424 sub_d(rd, rj, scratch);
429 void TurboAssembler::Mul_w(Register rd, Register rj, const Operand& rk) {
431 mul_w(rd, rj, rk.rm());
438 mul_w(rd, rj, scratch);
442 void TurboAssembler::Mulh_w(Register rd, Register rj, const Operand& rk) {
444 mulh_w(rd, rj, rk.rm());
451 mulh_w(rd, rj, scratch);
455 void TurboAssembler::Mulh_wu(Register rd, Register rj, const Operand& rk) {
457 mulh_wu(rd, rj, rk.rm());
464 mulh_wu(rd, rj, scratch);
468 void TurboAssembler::Mul_d(Register rd, Register rj, const Operand& rk) {
470 mul_d(rd, rj, rk.rm());
477 mul_d(rd, rj, scratch);
481 void TurboAssembler::Mulh_d(Register rd, Register rj, const Operand& rk) {
483 mulh_d(rd, rj, rk.rm());
490 mulh_d(rd, rj, scratch);
494 void TurboAssembler::Div_w(Register rd, Register rj, const Operand& rk) {
496 div_w(rd, rj, rk.rm());
503 div_w(rd, rj, scratch);
507 void TurboAssembler::Mod_w(Register rd, Register rj, const Operand& rk) {
509 mod_w(rd, rj, rk.rm());
516 mod_w(rd, rj, scratch);
520 void TurboAssembler::Mod_wu(Register rd, Register rj, const Operand& rk) {
522 mod_wu(rd, rj, rk.rm());
529 mod_wu(rd, rj, scratch);
533 void TurboAssembler::Div_d(Register rd, Register rj, const Operand& rk) {
535 div_d(rd, rj, rk.rm());
542 div_d(rd, rj, scratch);
546 void TurboAssembler::Div_wu(Register rd, Register rj, const Operand& rk) {
548 div_wu(rd, rj, rk.rm());
555 div_wu(rd, rj, scratch);
559 void TurboAssembler::Div_du(Register rd, Register rj, const Operand& rk) {
561 div_du(rd, rj, rk.rm());
568 div_du(rd, rj, scratch);
572 void TurboAssembler::Mod_d(Register rd, Register rj, const Operand& rk) {
574 mod_d(rd, rj, rk.rm());
581 mod_d(rd, rj, scratch);
585 void TurboAssembler::Mod_du(Register rd, Register rj, const Operand& rk) {
587 mod_du(rd, rj, rk.rm());
594 mod_du(rd, rj, scratch);
598 void TurboAssembler::And(Register rd, Register rj, const Operand& rk) {
600 and_(rd, rj, rk.rm());
603 andi(rd, rj, static_cast<int32_t>(rk.immediate()));
610 and_(rd, rj, scratch);
615 void TurboAssembler::Or(Register rd, Register rj, const Operand& rk) {
617 or_(rd, rj, rk.rm());
620 ori(rd, rj, static_cast<int32_t>(rk.immediate()));
627 or_(rd, rj, scratch);
632 void TurboAssembler::Xor(Register rd, Register rj, const Operand& rk) {
634 xor_(rd, rj, rk.rm());
637 xori(rd, rj, static_cast<int32_t>(rk.immediate()));
644 xor_(rd, rj, scratch);
649 void TurboAssembler::Nor(Register rd, Register rj, const Operand& rk) {
651 nor(rd, rj, rk.rm());
658 nor(rd, rj, scratch);
662 void TurboAssembler::Andn(Register rd, Register rj, const Operand& rk) {
664 andn(rd, rj, rk.rm());
671 andn(rd, rj, scratch);
675 void TurboAssembler::Orn(Register rd, Register rj, const Operand& rk) {
677 orn(rd, rj, rk.rm());
684 orn(rd, rj, scratch);
693 void TurboAssembler::Slt(Register rd, Register rj, const Operand& rk) {
695 slt(rd, rj, rk.rm());
698 slti(rd, rj, static_cast<int32_t>(rk.immediate()));
706 slt(rd, rj, scratch);
711 void TurboAssembler::Sltu(Register rd, Register rj, const Operand& rk) {
713 sltu(rd, rj, rk.rm());
716 sltui(rd, rj, static_cast<int32_t>(rk.immediate()));
724 sltu(rd, rj, scratch);
729 void TurboAssembler::Sle(Register rd, Register rj, const Operand& rk) {
731 slt(rd, rk.rm(), rj);
739 slt(rd, scratch, rj);
741 xori(rd, rd, 1);
744 void TurboAssembler::Sleu(Register rd, Register rj, const Operand& rk) {
746 sltu(rd, rk.rm(), rj);
754 sltu(rd, scratch, rj);
756 xori(rd, rd, 1);
759 void TurboAssembler::Sge(Register rd, Register rj, const Operand& rk) {
760 Slt(rd, rj, rk);
761 xori(rd, rd, 1);
764 void TurboAssembler::Sgeu(Register rd, Register rj, const Operand& rk) {
765 Sltu(rd, rj, rk);
766 xori(rd, rd, 1);
769 void TurboAssembler::Sgt(Register rd, Register rj, const Operand& rk) {
771 slt(rd, rk.rm(), rj);
779 slt(rd, scratch, rj);
783 void TurboAssembler::Sgtu(Register rd, Register rj, const Operand& rk) {
785 sltu(rd, rk.rm(), rj);
793 sltu(rd, scratch, rj);
797 void TurboAssembler::Rotr_w(Register rd, Register rj, const Operand& rk) {
799 rotr_w(rd, rj, rk.rm());
805 rotri_w(rd, rj, ror_value);
809 void TurboAssembler::Rotr_d(Register rd, Register rj, const Operand& rk) {
811 rotr_d(rd, rj, rk.rm());
815 rotri_d(rd, rj, dror_value);
819 void TurboAssembler::Alsl_w(Register rd, Register rj, Register rk, uint8_t sa,
823 alsl_w(rd, rj, rk, sa);
825 Register tmp = rd == rk ? scratch : rd;
828 add_w(rd, rk, tmp);
832 void TurboAssembler::Alsl_d(Register rd, Register rj, Register rk, uint8_t sa,
836 alsl_d(rd, rj, rk, sa);
838 Register tmp = rd == rk ? scratch : rd;
841 add_d(rd, rk, tmp);
874 void TurboAssembler::Ld_b(Register rd, const MemOperand& rj) {
878 ldx_b(rd, source.base(), source.index());
880 ld_b(rd, source.base(), source.offset());
884 void TurboAssembler::Ld_bu(Register rd, const MemOperand& rj) {
888 ldx_bu(rd, source.base(), source.index());
890 ld_bu(rd, source.base(), source.offset());
894 void TurboAssembler::St_b(Register rd, const MemOperand& rj) {
898 stx_b(rd, source.base(), source.index());
900 st_b(rd, source.base(), source.offset());
904 void TurboAssembler::Ld_h(Register rd, const MemOperand& rj) {
908 ldx_h(rd, source.base(), source.index());
910 ld_h(rd, source.base(), source.offset());
914 void TurboAssembler::Ld_hu(Register rd, const MemOperand& rj) {
918 ldx_hu(rd, source.base(), source.index());
920 ld_hu(rd, source.base(), source.offset());
924 void TurboAssembler::St_h(Register rd, const MemOperand& rj) {
928 stx_h(rd, source.base(), source.index());
930 st_h(rd, source.base(), source.offset());
934 void TurboAssembler::Ld_w(Register rd, const MemOperand& rj) {
939 ldptr_w(rd, source.base(), source.offset());
945 ldx_w(rd, source.base(), source.index());
947 ld_w(rd, source.base(), source.offset());
951 void TurboAssembler::Ld_wu(Register rd, const MemOperand& rj) {
955 ldx_wu(rd, source.base(), source.index());
957 ld_wu(rd, source.base(), source.offset());
961 void TurboAssembler::St_w(Register rd, const MemOperand& rj) {
966 stptr_w(rd, source.base(), source.offset());
972 stx_w(rd, source.base(), source.index());
974 st_w(rd, source.base(), source.offset());
978 void TurboAssembler::Ld_d(Register rd, const MemOperand& rj) {
983 ldptr_d(rd, source.base(), source.offset());
989 ldx_d(rd, source.base(), source.index());
991 ld_d(rd, source.base(), source.offset());
995 void TurboAssembler::St_d(Register rd, const MemOperand& rj) {
1000 stptr_d(rd, source.base(), source.offset());
1006 stx_d(rd, source.base(), source.index());
1008 st_d(rd, source.base(), source.offset());
1052 void TurboAssembler::Ll_w(Register rd, const MemOperand& rj) {
1056 ll_w(rd, rj.base(), rj.offset());
1062 ll_w(rd, scratch, 0);
1066 void TurboAssembler::Ll_d(Register rd, const MemOperand& rj) {
1070 ll_d(rd, rj.base(), rj.offset());
1076 ll_d(rd, scratch, 0);
1080 void TurboAssembler::Sc_w(Register rd, const MemOperand& rj) {
1084 sc_w(rd, rj.base(), rj.offset());
1090 sc_w(rd, scratch, 0);
1094 void TurboAssembler::Sc_d(Register rd, const MemOperand& rj) {
1098 sc_d(rd, rj.base(), rj.offset());
1104 sc_d(rd, scratch, 0);
1144 void TurboAssembler::LiLower32BitHelper(Register rd, Operand j) {
1146 addi_d(rd, zero_reg, j.immediate());
1148 ori(rd, zero_reg, j.immediate() & kImm12Mask);
1150 lu12i_w(rd, j.immediate() >> 12 & 0xfffff);
1152 ori(rd, rd, j.immediate() & kImm12Mask);
1187 void TurboAssembler::li_optimized(Register rd, Operand j, LiFlags mode) {
1195 LiLower32BitHelper(rd, j);
1197 LiLower32BitHelper(rd, j);
1198 lu32i_d(rd, imm >> 32 & 0xfffff);
1204 lu52i_d(rd, zero_reg, imm >> 52 & kImm12Mask);
1207 lu12i_w(rd, imm >> (tzc + 32) & mask);
1208 slli_d(rd, rd, tzc + 20);
1210 xor_(rd, rd, rd);
1211 lu32i_d(rd, imm >> 32 & 0xfffff);
1212 lu52i_d(rd, rd, imm >> 52 & kImm12Mask);
1216 LiLower32BitHelper(rd, j);
1217 if (imm21 != 0x1fffffL && imm21 != 0) lu32i_d(rd, imm >> 32 & 0xfffff);
1218 lu52i_d(rd, rd, imm >> 52 & kImm12Mask);
1222 void TurboAssembler::li(Register rd, Operand j, LiFlags mode) {
1226 li_optimized(rd, j, mode);
1237 lu12i_w(rd, immediate >> 12 & 0xfffff);
1238 ori(rd, rd, immediate & kImm12Mask);
1239 lu32i_d(rd, immediate >> 32 & 0xfffff);
1243 lu12i_w(rd, j.immediate() >> 12 & 0xfffff);
1244 ori(rd, rd, j.immediate() & kImm12Mask);
1245 lu32i_d(rd, j.immediate() >> 32 & 0xfffff);
1248 lu12i_w(rd, j.immediate() >> 12 & 0xfffff);
1249 ori(rd, rd, j.immediate() & kImm12Mask);
1250 lu32i_d(rd, j.immediate() >> 32 & 0xfffff);
1251 lu52i_d(rd, rd, j.immediate() >> 52 & kImm12Mask);
1584 void TurboAssembler::Ftintrz_uw_d(Register rd, FPURegister fj,
1587 DCHECK(rd != t7);
1607 movfr2gr_s(rd, scratch);
1608 Or(rd, rd, 1 << 31);
1615 movfr2gr_s(rd, scratch);
1620 void TurboAssembler::Ftintrz_uw_s(Register rd, FPURegister fj,
1623 DCHECK(rd != t7);
1637 // First we subtract 2^31 from fs, then trunc it to rd
1638 // and add 2^31 to rd.
1641 movfr2gr_s(rd, scratch);
1642 Or(rd, rd, 1 << 31);
1649 movfr2gr_s(rd, scratch);
1654 void TurboAssembler::Ftintrz_ul_d(Register rd, FPURegister fj,
1657 DCHECK(result.is_valid() ? !AreAliased(rd, result, t7) : !AreAliased(rd, t7));
1679 // First we subtract 2^63 from fs, then trunc it to rd
1680 // and add 2^63 to rd.
1683 movfr2gr_d(rd, scratch);
1684 Or(rd, rd, Operand(1UL << 63));
1690 movfr2gr_d(rd, scratch);
1709 void TurboAssembler::Ftintrz_ul_s(Register rd, FPURegister fj,
1712 DCHECK(result.is_valid() ? !AreAliased(rd, result, t7) : !AreAliased(rd, t7));
1738 // First we subtract 2^63 from fs, then trunc it to rd
1739 // and add 2^63 to rd.
1742 movfr2gr_d(rd, scratch);
1743 Or(rd, rd, Operand(1UL << 63));
1749 movfr2gr_d(rd, scratch);
1904 void TurboAssembler::Movz(Register rd, Register rj, Register rk) {
1908 maskeqz(rd, rd, rk);
1909 or_(rd, rd, scratch);
1912 void TurboAssembler::Movn(Register rd, Register rj, Register rk) {
1916 masknez(rd, rd, rk);
1917 or_(rd, rd, scratch);
1920 void TurboAssembler::LoadZeroOnCondition(Register rd, Register rj,
1925 mov(rd, zero_reg);
1930 LoadZeroIfConditionZero(rd, rk.rm());
1932 mov(rd, zero_reg);
1935 LoadZeroIfConditionZero(rd, rj);
1938 LoadZeroIfConditionZero(rd, t7);
1944 LoadZeroIfConditionNotZero(rd, rk.rm());
1946 mov(rd, zero_reg);
1949 LoadZeroIfConditionNotZero(rd, rj);
1952 LoadZeroIfConditionNotZero(rd, t7);
1959 LoadZeroIfConditionNotZero(rd, t7);
1963 LoadZeroIfConditionNotZero(rd, t7);
1968 LoadZeroIfConditionNotZero(rd, t7);
1973 LoadZeroIfConditionNotZero(rd, t7);
1980 LoadZeroIfConditionNotZero(rd, t7);
1986 LoadZeroIfConditionNotZero(rd, t7);
1991 LoadZeroIfConditionNotZero(rd, t7);
1996 LoadZeroIfConditionNotZero(rd, t7);
2028 void TurboAssembler::Clz_w(Register rd, Register rj) { clz_w(rd, rj); }
2030 void TurboAssembler::Clz_d(Register rd, Register rj) { clz_d(rd, rj); }
2032 void TurboAssembler::Ctz_w(Register rd, Register rj) { ctz_w(rd, rj); }
2034 void TurboAssembler::Ctz_d(Register rd, Register rj) { ctz_d(rd, rj); }
2037 void TurboAssembler::Popcnt_w(Register rd, Register rj) {
2068 And(rd, scratch, scratch2);
2071 Add_w(scratch, rd, scratch);
2072 srli_w(rd, scratch, 4);
2073 Add_w(rd, rd, scratch);
2075 And(rd, rd, scratch2);
2077 Mul_w(rd, rd, scratch);
2078 srli_w(rd, rd, shift);
2081 void TurboAssembler::Popcnt_d(Register rd, Register rj) {
2098 And(rd, scratch, scratch2);
2101 Add_d(scratch, rd, scratch);
2102 srli_d(rd, scratch, 4);
2103 Add_d(rd, rd, scratch);
2105 And(rd, rd, scratch2);
2107 Mul_d(rd, rd, scratch);
2108 srli_d(rd, rd, shift);