return NULL;
}
-/* Get the profile that best matches the current architecture string,
- where best is defined as the most expansive profile. */
-
-const char *
-riscv_subset_list::get_profile_name () const
-{
- const char *best_profile = NULL;
- int max_ext_count = -1;
-
- for (int i = 0; riscv_profiles_table[i].profile_name != nullptr; ++i)
- {
- riscv_subset_list *subset_list = riscv_subset_list::parse (
- riscv_profiles_table[i].profile_string, NULL);
- if (!subset_list)
- continue;
- if (subset_list->xlen () == this->xlen ())
- {
- int ext_count = 0;
- bool all_found = true;
- for (riscv_subset_t *p = subset_list->m_head; p != NULL;
- p = p->next, ++ext_count)
- {
- if (!this->lookup (p->name.c_str (),
- p->major_version,
- p->minor_version))
- {
- all_found = false;
- break;
- }
- }
- if (all_found && ext_count > max_ext_count)
- {
- max_ext_count = ext_count;
- best_profile = riscv_profiles_table[i].profile_name;
- }
- }
- delete subset_list;
- }
- return best_profile;
-}
-
/* Clone whole subset list. */
riscv_subset_list *
if (!subset_list)
return;
- /* Define profile macro if a profile was used. */
- const char *profile_name = subset_list->get_profile_name ();
- if (profile_name)
- {
- char *profile_macro = (char *)alloca (strlen (profile_name) + 10);
- sprintf (profile_macro, "__riscv_%s", profile_name);
- builtin_define (profile_macro);
- }
-
size_t max_ext_len = 0;
/* Figure out the max length of extension name for reserving buffer. */
unsigned xlen () const {return m_xlen;};
- const char *get_profile_name () const;
-
riscv_subset_list *clone () const;
static riscv_subset_list *parse (const char *, location_t *);
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-march=rvi20u64 -mabi=lp64" } */
-
-int main () {
-
-#ifndef __riscv_rvi20u64
-#error "__riscv_rvi20u64"
-#endif
-
- return 0;
-}
\ No newline at end of file
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-march=rvi20u32 -mabi=ilp32" } */
-
-int main () {
-
-#ifndef __riscv_rvi20u32
-#error "__riscv_rvi20u32"
-#endif
-
- return 0;
-}
\ No newline at end of file
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-march=rva20u64 -mabi=lp64d" } */
-
-int main () {
-
-#ifndef __riscv_rva20u64
-#error "__riscv_rva20u64"
-#endif
-
- return 0;
-}
\ No newline at end of file
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-march=rva22u64 -mabi=lp64d" } */
-
-int main () {
-
-#ifndef __riscv_rva22u64
-#error "__riscv_rva22u64"
-#endif
-
- return 0;
-}
\ No newline at end of file
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-march=rva23u64 -mabi=lp64d" } */
-
-int main () {
-
-#ifndef __riscv_rva23u64
-#error "__riscv_rva23u64"
-#endif
-
- return 0;
-}
\ No newline at end of file
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-march=rva23s64 -mabi=lp64d" } */
-
-int main () {
-
-#ifndef __riscv_rva23s64
-#error "__riscv_rva23s64"
-#endif
-
- return 0;
-}
\ No newline at end of file
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-march=rvb23u64 -mabi=lp64d" } */
-
-int main () {
-
-#ifndef __riscv_rvb23u64
-#error "__riscv_rvb23u64"
-#endif
-
- return 0;
-}
\ No newline at end of file
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-march=rvb23s64 -mabi=lp64d" } */
-
-int main () {
-
-#ifndef __riscv_rvb23s64
-#error "__riscv_rvb23s64"
-#endif
-
- return 0;
-}
\ No newline at end of file