Lines Matching refs:imm

35                                   IntegerOperand imm) {
36 VIXL_ASSERT(imm.FitsInLane(zd));
39 if (TrySingleAddSub(option, zd, zn, imm)) return;
44 // Try to translate Add(..., -imm) to Sub(..., imm) if we can encode it in one
47 IntegerOperand signed_imm(imm.AsIntN(zd.GetLaneSizeInBits()));
59 Dup(scratch, imm);
72 IntegerOperand imm) {
73 VIXL_ASSERT(imm.FitsInLane(zd));
77 if (imm.TryEncodeAsShiftedUintNForLane<8, 0>(zd, &imm8, &shift) ||
78 imm.TryEncodeAsShiftedUintNForLane<8, 8>(zd, &imm8, &shift)) {
96 IntegerOperand imm,
100 if (imm.IsInt8()) {
102 (this->*imm_fn)(zd, zd, imm.AsInt8());
107 if (imm.IsUint8()) {
109 (this->*imm_fn)(zd, zd, imm.AsUint8());
122 Dup(scratch, imm);
131 IntegerOperand imm) {
135 IntWideImmHelper(imm_fn, reg_fn, zd, zn, imm, true);
140 IntegerOperand imm) {
142 VIXL_ASSERT(imm.FitsInSignedLane(zd));
145 IntWideImmHelper(imm_fn, reg_fn, zd, zn, imm, true);
150 IntegerOperand imm) {
152 VIXL_ASSERT(imm.FitsInSignedLane(zd));
155 IntWideImmHelper(imm_fn, reg_fn, zd, zn, imm, true);
160 IntegerOperand imm) {
162 VIXL_ASSERT(imm.FitsInUnsignedLane(zd));
165 IntWideImmHelper(imm_fn, reg_fn, zd, zn, imm, false);
170 IntegerOperand imm) {
172 VIXL_ASSERT(imm.FitsInUnsignedLane(zd));
175 IntWideImmHelper(imm_fn, reg_fn, zd, zn, imm, false);
365 IntegerOperand imm) {
367 VIXL_ASSERT(imm.FitsInLane(zd));
370 if (imm.TryEncodeAsShiftedIntNForLane<8, 0>(zd, &imm8, &shift) ||
371 imm.TryEncodeAsShiftedIntNForLane<8, 8>(zd, &imm8, &shift)) {
386 VIXL_ASSERT(imm.FitsInLane(zd));
392 FPToDouble(RawbitsToFloat16(imm.AsUint16()), kIgnoreDefaultNaN);
395 fp_imm = RawbitsToFloat(imm.AsUint32());
398 fp_imm = RawbitsToDouble(imm.AsUint64());
416 Mov(scratch, imm);
429 double imm) {
433 if (IsImmFP64(imm)) {
435 fcpy(zd, pg, imm);
441 Cpy(zd, pg, FPToRawbitsWithSize(zd.GetLaneSizeInBits(), imm));
446 float imm) {
450 if (IsImmFP32(imm)) {
452 fcpy(zd, pg, imm);
458 Cpy(zd, pg, FPToRawbitsWithSize(zd.GetLaneSizeInBits(), imm));
463 Float16 imm) {
467 if (IsImmFP16(imm)) {
469 fcpy(zd, pg, imm);
475 Cpy(zd, pg, FPToRawbitsWithSize(zd.GetLaneSizeInBits(), imm));
478 void MacroAssembler::Dup(const ZRegister& zd, IntegerOperand imm) {
480 VIXL_ASSERT(imm.FitsInLane(zd));
484 if (imm.TryEncodeAsShiftedIntNForLane<8, 0>(zd, &imm8, &shift) ||
485 imm.TryEncodeAsShiftedIntNForLane<8, 8>(zd, &imm8, &shift)) {
488 } else if (IsImmLogical(imm.AsUintN(lane_size), lane_size)) {
490 dupm(zd, imm.AsUintN(lane_size));
494 Mov(scratch, imm);
576 int imm) { \
586 imm); \
589 ASMFN(zd, zn, zm, imm); \
824 void MacroAssembler::Fdup(const ZRegister& zd, double imm) {
829 Fdup(zd, Float16(imm));
832 Fdup(zd, static_cast<float>(imm));
835 uint64_t bits = DoubleToRawbits(imm);
838 fdup(zd, imm);
846 void MacroAssembler::Fdup(const ZRegister& zd, float imm) {
851 Fdup(zd, Float16(imm));
854 if (IsImmFP32(imm)) {
856 fdup(zd, imm);
858 Dup(zd, FloatToRawbits(imm));
862 Fdup(zd, static_cast<double>(imm));
867 void MacroAssembler::Fdup(const ZRegister& zd, Float16 imm) {
872 if (IsImmFP16(imm)) {
874 fdup(zd, imm);
876 Dup(zd, Float16ToRawbits(imm));
880 Fdup(zd, FPToFloat(imm, kIgnoreDefaultNaN));
883 Fdup(zd, FPToDouble(imm, kIgnoreDefaultNaN));
898 int imm;
900 if (IntegerOperand(op).TryEncodeAsIntNForLane<5>(zd_inner, &imm)) {
901 return IndexOperand(imm);
914 int64_t imm = GetImmediate();
915 VIXL_ASSERT(IsInt5(imm));
916 return static_cast<int>(imm);
921 explicit IndexOperand(int64_t imm) : Operand(imm) {}
944 void MacroAssembler::Insr(const ZRegister& zdn, IntegerOperand imm) {
946 VIXL_ASSERT(imm.FitsInLane(zdn));
948 if (imm.IsZero()) {
960 Mov(scratch, imm);
1024 IntegerOperand imm) {
1027 Dup(zm, imm);
1091 IntegerOperand imm,
1097 if (imm.TryEncodeAsShiftedUintNForLane<8, 0>(zd, &imm8, &shift) ||
1098 imm.TryEncodeAsShiftedUintNForLane<8, 8>(zd, &imm8, &shift)) {
1104 Dup(scratch, imm);
1117 int64_t imm = addr.GetImmediateOffset();
1118 if ((imm % divisor == 0) && IsUint6(imm / divisor)) {
1195 // We don't handle [x0, #imm, MUL VL] if the in-memory access size is not VL
1748 int imm) {
1757 (this->*fn)(scratch, zn, zm, imm);
1764 (this->*fn)(zd, zn, zm, imm);
1884 int imm) { \
1886 HELPER(&Assembler::ASMFN, zd, za, zn, zm, imm); \