Lines Matching defs:imm

87                                     uint64_t imm,
92 if (IsImmLogical(imm, lane_size, &bit_n, &imm_s, &imm_r)) {
100 void Assembler::and_(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
104 SVELogicalImmediate(zd, imm, AND_z_zi);
107 void Assembler::dupm(const ZRegister& zd, uint64_t imm) {
112 SVELogicalImmediate(zd, imm, DUPM_z_i);
115 void Assembler::eor(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
119 SVELogicalImmediate(zd, imm, EOR_z_zi);
122 void Assembler::orr(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
126 SVELogicalImmediate(zd, imm, ORR_z_zi);
590 double imm) {
600 VIXL_ASSERT((imm == 0.5) || (imm == 1.0));
602 Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
660 double imm) {
670 VIXL_ASSERT(((imm == 0.0) && (copysign(1.0, imm) == 1.0)) || (imm == 1.0));
672 Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
696 double imm) {
706 VIXL_ASSERT(((imm == 0.0) && (copysign(1.0, imm) == 1.0)) || (imm == 1.0));
708 Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
732 double imm) {
742 VIXL_ASSERT(((imm == 0.0) && (copysign(1.0, imm) == 1.0)) || (imm == 1.0));
744 Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
768 double imm) {
778 VIXL_ASSERT(((imm == 0.0) && (copysign(1.0, imm) == 1.0)) || (imm == 1.0));
780 Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
804 double imm) {
814 VIXL_ASSERT((imm == 0.5) || (imm == 2.0));
816 Instr i1 = (imm == 2.0) ? (1 << 5) : 0;
874 double imm) {
884 VIXL_ASSERT((imm == 0.5) || (imm == 1.0));
886 Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
910 double imm) {
920 VIXL_ASSERT((imm == 0.5) || (imm == 1.0));
922 Instr i1 = (imm == 1.0) ? (1 << 5) : 0;
947 // FTMAD <Zdn>.<T>, <Zdn>.<T>, <Zm>.<T>, #<imm>
1652 // FMUL <Zd>.<T>, <Zn>.<T>, <Zm>.<T>[<imm>]
2229 // INDEX <Zd>.<T>, <R><n>, #<imm>
2241 // INDEX <Zd>.<T>, #<imm>, <R><m>
2755 int imm,
2757 Emit(op | SVESize(zn) | Pd(pd) | PgLow8(pg) | Rn(zn) | ImmField<20, 16>(imm));
2763 unsigned imm,
2766 ImmUnsignedField<20, 14>(imm));
2816 // CMPEQ <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
2831 // CMPGE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
2846 // CMPGT <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
2861 // CMPLE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
2876 // CMPLT <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
2891 // CMPNE <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
2908 // CMPHI <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
2923 // CMPHS <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
2938 // CMPLO <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
2953 // CMPLS <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>
3562 // CPY <Zd>.<T>, <Pg>/<ZM>, #<imm>{, <shift>}
3577 void Assembler::fcpy(const ZRegister& zd, const PRegisterM& pg, double imm) {
3585 Instr imm_field = ImmUnsignedField<12, 5>(FP64ToImm8(imm));
3618 // ADD <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
3631 // DUP <Zd>.<T>, #<imm>{, <shift>}
3644 void Assembler::fdup(const ZRegister& zd, double imm) {
3652 Instr encoded_imm = FP64ToImm8(imm) << 5;
3657 // MUL <Zdn>.<T>, <Zdn>.<T>, #<imm>
3670 // SMAX <Zdn>.<T>, <Zdn>.<T>, #<imm>
3683 // SMIN <Zdn>.<T>, <Zdn>.<T>, #<imm>
3699 // SQADD <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
3715 // SQSUB <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
3731 // SUB <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
3747 // SUBR <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
3760 // UMAX <Zdn>.<T>, <Zdn>.<T>, #<imm>
3773 // UMIN <Zdn>.<T>, <Zdn>.<T>, #<imm>
3789 // UQADD <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
3805 // UQSUB <Zdn>.<T>, <Zdn>.<T>, #<imm>{, <shift>}
4140 int64_t imm = addr.GetImmediateOffset();
4142 VIXL_ASSERT(imm % divisor == 0);
4148 ImmUnsignedField<21, 16>(imm / divisor) | Rt(zt) | PgLow8(pg));
4227 // LDR <Pt/Zt>, [<Xn|SP>{, #<imm>, MUL VL}]
4272 // LDFF1B { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
4305 // LDFF1D { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
4341 // LDFF1H { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
4375 // LDFF1SB { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
4412 // LDFF1SH { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
4446 // LDFF1SW { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
4483 // LDFF1W { <Zt>.D }, <Pg>/Z, [<Zn>.D{, #<imm>}]
4759 int64_t imm = addr.GetImmediateOffset();
4760 VIXL_ASSERT(((imm % imm_divisor) == 0) && IsInt4(imm / imm_divisor));
4761 op = immoffset_op | ImmField<19, 16>(imm / imm_divisor);
5060 int64_t imm = addr.GetImmediateOffset();
5061 VIXL_ASSERT((imm % num_regs) == 0);
5062 op = RnSP(addr.GetScalarBase()) | ImmField<19, 16>(imm / num_regs);
5071 uint64_t imm = addr.GetImmediateOffset();
5074 VIXL_ASSERT(IsMultiple(imm, (1 << msize_in_bytes_log2)));
5075 op = Rn(zn) | ImmUnsignedField<20, 16>(imm >> msize_in_bytes_log2);
5304 // STR <Pt/Zt>, [<Xn|SP>{, #<imm>, MUL VL}]
5567 // EXT <Zdn>.B, <Zdn>.B, <Zm>.B, #<imm>
5571 // EXT <Zd>.B, { <Zn1>.B, <Zn2>.B }, #<imm>
5973 // DUP <Zd>.<T>, <Zn>.<T>[<imm>]
6413 // ADDPL <Xd|SP>, <Xn|SP>, #<imm>
6425 // ADDVL <Xd|SP>, <Xn|SP>, #<imm>
6439 // RDVL <Xd>, #<imm>
6485 void Assembler::bic(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
6486 and_(zd, zn, ~imm);
6489 void Assembler::eon(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
6490 eor(zd, zn, ~imm);
6493 void Assembler::orn(const ZRegister& zd, const ZRegister& zn, uint64_t imm) {
6494 orr(zd, zn, ~imm);
6498 void Assembler::fmov(const ZRegister& zd, const PRegisterM& pg, double imm) {
6499 if (IsPositiveZero(imm)) {
6502 fcpy(zd, pg, imm);
6506 void Assembler::fmov(const ZRegister& zd, double imm) {
6507 if (IsPositiveZero(imm)) {
6510 fdup(zd, imm);
6582 void Assembler::mov(const ZRegister& zd, uint64_t imm) {
6583 // Mov is an alias of dupm for certain values of imm. Whilst this matters in
6586 dupm(zd, imm);
6830 // CDOT <Zda>.D, <Zn>.H, <Zm>.H[<imm>], <const>
6880 // CMLA <Zda>.H, <Zn>.H, <Zm>.H[<imm>], <const>
7289 // MLA <Zda>.D, <Zn>.D, <Zm>.D[<imm>]
7310 // MLS <Zda>.D, <Zn>.D, <Zm>.D[<imm>]
7331 // MUL <Zd>.D, <Zn>.D, <Zm>.D[<imm>]
8006 // SQDMLALB <Zda>.D, <Zn>.S, <Zm>.S[<imm>]
8069 // SQDMLALT <Zda>.D, <Zn>.S, <Zm>.S[<imm>]
8117 // SQDMLSLB <Zda>.D, <Zn>.S, <Zm>.S[<imm>]
8180 // SQDMLSLT <Zda>.D, <Zn>.S, <Zm>.S[<imm>]
8225 // SQDMULH <Zd>.D, <Zn>.D, <Zm>.D[<imm>]
8303 // SQRDCMLAH <Zda>.H, <Zn>.H, <Zm>.H[<imm>], <const>
8414 // SQRDMULH <Zd>.D, <Zn>.D, <Zm>.D[<imm>]