Home | History | Annotate | Download | only in bfd

Lines Matching refs:subset

1148 /* Always add implicit extensions for the SUBSET.  */
1151 check_implicit_always (riscv_subset_t *subset ATTRIBUTE_UNUSED)
1156 /* Add implicit extensions only when the version of SUBSET less than 2.1. */
1159 check_implicit_for_i (riscv_subset_t *subset)
1161 return (subset->major_version < 2
1162 || (subset->major_version == 2
1163 && subset->minor_version < 1));
1679 /* Find subset in the list. Return TRUE and set `current` to the subset
1681 where we should insert the subset. However, return FALSE with the NULL
1682 `current` means we should insert the subset at the head of subset list,
1687 const char *subset,
1692 /* If the subset is added in order, then just add it at the tail. */
1694 && riscv_compare_subsets (subset_list->tail->name, subset) < 0)
1704 int cmp = riscv_compare_subsets (s->name, subset);
1718 /* Add the extension to the subset list. Search the
1723 const char *subset,
1729 if (riscv_lookup_subset (subset_list, subset, &current))
1733 new->name = xstrdup (subset);
1794 the subset list, if their versions are RISCV_UNKNOWN_VERSION.
1799 const char *subset,
1809 riscv_get_default_ext_version (rps->isa_spec, subset,
1817 if (subset[0] == 'x')
1820 subset);
1822 else if (strcmp (subset, "zicsr") != 0
1823 && strcmp (subset, "zifencei") != 0)
1826 subset);
1830 riscv_add_subset (rps->subset_list, subset,
1834 /* Release subset list. */
1944 char *subset = xstrdup (p);
1945 char *q = subset; /* Start of version. */
1952 if (riscv_ext_order[(*subset - 'a')] == 0)
1956 arch, *subset);
1957 free (subset);
1992 arch, subset);
1993 free (subset);
2005 free (subset);
2012 && !riscv_recognized_prefixed_ext (subset))
2016 arch, subset);
2017 free (subset);
2023 && strcmp (subset, "g") == 0)
2029 riscv_parse_add_subset (rps, subset,
2032 p += end_of_version - subset;
2033 free (subset);
2059 riscv_subset_t *subset = NULL;
2060 if (riscv_lookup_subset (rps->subset_list, t->ext, &subset)
2061 && t->check_func (subset))
2062 riscv_update_subset1 (rps, subset, t->implicit_exts);
2071 riscv_subset_t *subset = NULL;
2082 if (riscv_lookup_subset (rps->subset_list, "q", &subset)
2083 && (subset->major_version < 2 || (subset->major_version == 2
2084 && subset->minor_version < 2))
2097 if (riscv_lookup_subset (rps->subset_list, "zcf", &subset)
2104 if (riscv_lookup_subset (rps->subset_list, "zfinx", &subset)
2105 && riscv_lookup_subset (rps->subset_list, "f", &subset))
2111 if (riscv_lookup_subset (rps->subset_list, "xtheadvector", &subset)
2112 && riscv_lookup_subset (rps->subset_list, "v", &subset))
2143 /* Set the default subset list according to the default_enable field
2258 /* Auxiliary function to estimate string length of subset list. */
2261 riscv_estimate_arch_strlen1 (const riscv_subset_t *subset)
2263 if (subset == NULL)
2266 return riscv_estimate_arch_strlen1 (subset->next)
2267 + strlen (subset->name)
2268 + riscv_estimate_digit (subset->major_version)
2270 + riscv_estimate_digit (subset->minor_version)
2274 /* Estimate the string length of this subset list. */
2282 /* Auxiliary function to convert subset info to string. */
2285 riscv_arch_str1 (riscv_subset_t *subset,
2289 riscv_subset_t *subset_t = subset;
2319 /* Convert subset information into string with explicit versions. */
2322 riscv_arch_str (unsigned xlen, const riscv_subset_list_t *subset)
2324 size_t arch_str_len = riscv_estimate_arch_strlen (subset);
2330 riscv_arch_str1 (subset->head, attr_str, buf, arch_str_len);
2336 /* Copy the subset in the subset list. */
2340 riscv_subset_t *subset)
2342 if (subset == NULL)
2346 new->name = xstrdup (subset->name);
2347 new->major_version = subset->major_version;
2348 new->minor_version = subset->minor_version;
2349 new->next = riscv_copy_subset (subset_list, subset->next);
2351 if (subset->next == NULL)
2357 /* Copy the subset list. */
2368 /* Remove the SUBSET from the subset list. */
2372 const char *subset)
2378 if (strcmp (current->name, subset) == 0)
2393 /* Auxiliary to add/remove extensions to/from the subset list.
2429 char *subset = xstrdup (p);
2430 char *q = subset;
2439 size_t len = q - subset;
2465 free (subset);
2474 free (subset);
2478 if (strlen (subset) == 0
2479 || (strlen (subset) == 1
2480 && riscv_ext_order[(*subset - 'a')] == 0)
2481 || (strlen (subset) > 1
2483 && !riscv_recognized_prefixed_ext (subset)))
2487 errmsg_internal, subset, errmsg_caller, implicit_exts);
2488 free (subset);
2493 && (strcmp (subset, "i") == 0
2494 || strcmp (subset, "e") == 0
2495 || strcmp (subset, "g") == 0))
2499 errmsg_internal, subset, errmsg_caller, implicit_exts);
2500 free (subset);
2505 riscv_remove_subset (rps->subset_list, subset);
2509 if (!riscv_lookup_subset (rps->subset_list, subset, &isubset))
2510 riscv_parse_add_subset (rps, subset, major_version, minor_version,
2513 p += end_of_version - subset;
2514 free (subset);
2527 /* Add/Remove an extension to/from the subset list. This is used for
2537 /* Check if the FEATURE subset is supported or not in the subset list.
2544 struct riscv_subset_t *subset;
2545 return riscv_lookup_subset (rps->subset_list, feature, &subset);