Lines Matching refs:qualifier
214 order of operand qualifier enumerators. */
216 /* Given VALUE, return qualifier for a general purpose register. */
220 enum aarch64_opnd_qualifier qualifier = AARCH64_OPND_QLF_W + value;
222 && aarch64_get_qualifier_standard_value (qualifier) == value)
223 return qualifier;
227 /* Given VALUE, return qualifier for a vector register. This does not support
233 enum aarch64_opnd_qualifier qualifier = AARCH64_OPND_QLF_V_8B + value;
236 the 2H qualifier. */
237 if (qualifier >= AARCH64_OPND_QLF_V_2H)
238 qualifier += 1;
241 && aarch64_get_qualifier_standard_value (qualifier) == value)
242 return qualifier;
246 /* Given VALUE, return qualifier for an FP or AdvSIMD scalar register. */
250 enum aarch64_opnd_qualifier qualifier = AARCH64_OPND_QLF_S_B + value;
253 && aarch64_get_qualifier_standard_value (qualifier) == value)
254 return qualifier;
259 decoding and our caller wants to know the expected qualifier for operand
260 I. Return such a qualifier if we can establish it; otherwise return
267 /* Should not be called if the qualifier is known. */
268 if (inst->operands[i].qualifier == AARCH64_OPND_QLF_NIL)
366 /* Depend on AARCH64_OPND_Ed to determine the qualifier. */
367 info->qualifier = get_expected_qualifier (inst, info->idx);
368 if (info->qualifier == AARCH64_OPND_QLF_ERR)
370 shift = get_logsz (aarch64_get_qualifier_esize (info->qualifier));
388 info->qualifier = get_sreg_qualifier_from_value (pos);
389 if (info->qualifier == AARCH64_OPND_QLF_ERR)
397 info->qualifier = get_expected_qualifier (inst, info->idx);
398 if (info->qualifier == AARCH64_OPND_QLF_ERR)
400 switch (info->qualifier)
429 info->qualifier = get_expected_qualifier (inst, info->idx);
430 if (info->qualifier == AARCH64_OPND_QLF_ERR)
432 switch (info->qualifier)
470 && info->qualifier != AARCH64_OPND_QLF_S_H)
606 info->qualifier = AARCH64_OPND_QLF_S_B;
614 info->qualifier = AARCH64_OPND_QLF_S_H;
624 info->qualifier = AARCH64_OPND_QLF_S_S;
633 info->qualifier = AARCH64_OPND_QLF_S_D;
693 info->qualifier =
695 if (info->qualifier == AARCH64_OPND_QLF_ERR)
700 info->qualifier = get_sreg_qualifier_from_value (pos);
701 if (info->qualifier == AARCH64_OPND_QLF_ERR)
803 enum aarch64_opnd_qualifier opnd0_qualifier = inst->operands[0].qualifier;
829 info->qualifier = get_expected_qualifier (inst, info->idx);
830 if (info->qualifier == AARCH64_OPND_QLF_ERR)
832 switch (info->qualifier)
1019 esize = aarch64_get_qualifier_esize (inst->operands[0].qualifier);
1056 enum aarch64_opnd_qualifier qualifier;
1059 case 0: qualifier = AARCH64_OPND_QLF_S_S; break;
1060 case 1: qualifier = AARCH64_OPND_QLF_S_D; break;
1061 case 2: qualifier = AARCH64_OPND_QLF_S_Q; break;
1064 info->qualifier = qualifier;
1072 info->qualifier = get_sreg_qualifier_from_value (value);
1073 if (info->qualifier == AARCH64_OPND_QLF_ERR)
1146 info->qualifier = get_expected_qualifier (inst, info->idx);
1147 if (info->qualifier == AARCH64_OPND_QLF_ERR)
1167 info->qualifier = get_expected_qualifier (inst, info->idx);
1168 if (info->qualifier == AARCH64_OPND_QLF_ERR)
1218 info->qualifier = get_expected_qualifier (inst, info->idx);
1219 if (info->qualifier == AARCH64_OPND_QLF_ERR)
1223 size = aarch64_get_qualifier_esize (info->qualifier);
1238 info->qualifier = get_expected_qualifier (inst, info->idx);
1239 if (info->qualifier == AARCH64_OPND_QLF_ERR)
1249 || info->qualifier == AARCH64_OPND_QLF_imm_tag)
1251 info->addr.offset.imm *= aarch64_get_qualifier_esize (info->qualifier);
1252 /* qualifier */
1279 info->qualifier = get_expected_qualifier (inst, info->idx);
1280 if (info->qualifier == AARCH64_OPND_QLF_ERR)
1282 shift = get_logsz (aarch64_get_qualifier_esize (info->qualifier));
1299 info->qualifier = get_expected_qualifier (inst, info->idx);
1300 if (info->qualifier == AARCH64_OPND_QLF_ERR)
1336 * aarch64_get_qualifier_esize (inst->operands[0].qualifier);
1339 * aarch64_get_qualifier_esize (inst->operands[0].qualifier)
1340 * aarch64_get_qualifier_nelem (inst->operands[0].qualifier);
1563 /* Assume inst->operands[0].qualifier has been resolved. */
1564 assert (inst->operands[0].qualifier != AARCH64_OPND_QLF_NIL);
1565 info->qualifier = AARCH64_OPND_QLF_W;
1566 if (inst->operands[0].qualifier == AARCH64_OPND_QLF_X
1569 info->qualifier = AARCH64_OPND_QLF_X;
1983 info->qualifier = AARCH64_OPND_QLF_S_B;
1988 info->qualifier = AARCH64_OPND_QLF_S_H;
1993 info->qualifier = AARCH64_OPND_QLF_S_S;
1998 info->qualifier = AARCH64_OPND_QLF_S_D;
2003 info->qualifier = AARCH64_OPND_QLF_S_Q;
2016 /* Decode ZA tile vector, vector indicator, vector selector, qualifier and
2030 /* Deduce qualifier encoded in size and Q fields. */
2072 qualifier);
2149 switch (info->qualifier)
2188 switch (info->qualifier)
2313 int esize = aarch64_get_qualifier_esize (inst->operands[0].qualifier);
2506 This function tries to deduce the qualifier from the value of partially
2509 operand encoding), the function returns the matching qualifier or
2536 /* Given a list of qualifier sequences, return all possible valid qualifiers
2553 whether the qualifier is valid for this opcode or not, it is the
2560 enum aarch64_opnd_qualifier qualifier;
2581 /* The index of the operand we are going to tag a qualifier and the qualifer
2583 possible valid qualifier lists. */
2591 inst->operands[idx].qualifier = get_vreg_qualifier_from_value (value);
2592 if (inst->operands[idx].qualifier == AARCH64_OPND_QLF_ERR)
2605 DEBUG_TRACE ("qualifier %d: %s", i,
2611 qualifier = get_qualifier_from_partial_encoding (value, candidates, mask);
2613 if (qualifier == AARCH64_OPND_QLF_NIL)
2616 inst->operands[idx].qualifier = qualifier;
2628 enum aarch64_opnd_qualifier qualifier;
2632 qualifier = value == 0 ? AARCH64_OPND_QLF_V_4S
2639 inst->operands[1].qualifier = qualifier;
2644 inst->operands[0].qualifier = qualifier;
2663 inst->operands[0].qualifier = AARCH64_OPND_QLF_S_S;
2671 enum aarch64_opnd_qualifier qualifier;
2679 case 0: qualifier = AARCH64_OPND_QLF_S_S; break;
2680 case 1: qualifier = AARCH64_OPND_QLF_S_D; break;
2681 case 3: qualifier = AARCH64_OPND_QLF_S_H; break;
2684 inst->operands[0].qualifier = qualifier;
2779 inst->operands[idx].qualifier = AARCH64_OPND_QLF_S_S;
2781 inst->operands[idx].qualifier = AARCH64_OPND_QLF_S_D;
2784 inst->operands[idx].qualifier = get_greg_qualifier_from_value (value);
2785 if (inst->operands[idx].qualifier == AARCH64_OPND_QLF_ERR)
2796 inst->operands[idx].qualifier = get_greg_qualifier_from_value (value);
2797 if (inst->operands[idx].qualifier == AARCH64_OPND_QLF_ERR)
2811 inst->operands[i].qualifier = get_greg_qualifier_from_value (value & 1);
2812 if (inst->operands[i].qualifier == AARCH64_OPND_QLF_ERR)
2819 inst->operands[i].qualifier = get_sreg_qualifier_from_value (value);
2820 if (inst->operands[i].qualifier == AARCH64_OPND_QLF_ERR)
2836 case 0: inst->operands[idx].qualifier = AARCH64_OPND_QLF_S_S; break;
2837 case 1: inst->operands[idx].qualifier = AARCH64_OPND_QLF_S_D; break;
2838 case 3: inst->operands[idx].qualifier = AARCH64_OPND_QLF_S_H; break;
2856 inst->operands[idx].qualifier = get_sreg_qualifier_from_value (value);
2857 if (inst->operands[idx].qualifier == AARCH64_OPND_QLF_ERR)
2864 inst->operands[idx].qualifier
2880 inst->operands[i].qualifier = get_sreg_qualifier_from_value (value);
2881 if (inst->operands[i].qualifier == AARCH64_OPND_QLF_ERR)
2909 inst->operands[0].qualifier =
2911 if (inst->operands[0].qualifier == AARCH64_OPND_QLF_ERR)
2921 inst->operands[0].qualifier
2923 if (inst->operands[0].qualifier == AARCH64_OPND_QLF_ERR)
2925 inst->operands[2].qualifier = get_sreg_qualifier_from_value (size);
2926 if (inst->operands[2].qualifier == AARCH64_OPND_QLF_ERR)
2945 inst->operands[idx].qualifier = get_greg_qualifier_from_value (value);
2946 if (inst->operands[idx].qualifier == AARCH64_OPND_QLF_ERR)
2957 inst->operands[0].qualifier
3009 val = inst->operands[2].qualifier == AARCH64_OPND_QLF_imm_0_31 ? 31 : 63;
3073 val = inst->operands[2].qualifier == AARCH64_OPND_QLF_imm_0_31 ? 32 : 64;
3103 qualifier == AARCH64_OPND_QLF_imm_0_31 ? 32 : 64;
3138 = inst->operands[2].qualifier == AARCH64_OPND_QLF_imm_0_31 ? 31 : 63;
3214 int is32 = inst->operands[0].qualifier == AARCH64_OPND_QLF_W;
3244 is32 = inst->operands[0].qualifier == AARCH64_OPND_QLF_W;
3703 inst->operands[i].qualifier = inst->opcode->qualifiers_list[variant][i];
3755 qualifier. */
3829 inst->operands[0].qualifier = AARCH64_OPND_QLF_W;