Pre-work of new style of architecture extension test macros, we need the list used in `config/riscv/riscv-c.c`, so those struct/class declaration must move to header file rather than local C file.
gcc/ChangeLog * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION): Move to riscv-protos.h. (struct riscv_subset_t): Ditto. (class riscv_subset_list): Ditto. * config/riscv/riscv-protos.h (RISCV_DONT_CARE_VERSION): Move from riscv-common.c. (struct riscv_subset_t): Ditto. (class riscv_subset_list): Ditto. --- gcc/common/config/riscv/riscv-common.c | 66 ------------------------- gcc/config/riscv/riscv-protos.h | 67 ++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 66 deletions(-) diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config/riscv/riscv-common.c index 5e3ddcf3f81..3a8bcbef006 100644 --- a/gcc/common/config/riscv/riscv-common.c +++ b/gcc/common/config/riscv/riscv-common.c @@ -31,22 +31,6 @@ along with GCC; see the file COPYING3. If not see #include "diagnostic-core.h" #include "config/riscv/riscv-protos.h" -#define RISCV_DONT_CARE_VERSION -1 - -/* Subset info. */ -struct riscv_subset_t -{ - riscv_subset_t (); - - std::string name; - int major_version; - int minor_version; - struct riscv_subset_t *next; - - bool explicit_version_p; - bool implied_p; -}; - /* Type for implied ISA info. */ struct riscv_implied_info_t { @@ -123,56 +107,6 @@ static const riscv_cpu_info riscv_cpu_tables[] = {NULL, NULL, NULL} }; -/* Subset list. */ -class riscv_subset_list -{ -private: - /* Original arch string. */ - const char *m_arch; - - /* Location of arch string, used for report error. */ - location_t m_loc; - - /* Head of subset info list. */ - riscv_subset_t *m_head; - - /* Tail of subset info list. */ - riscv_subset_t *m_tail; - - /* X-len of m_arch. */ - unsigned m_xlen; - - riscv_subset_list (const char *, location_t); - - const char *parsing_subset_version (const char *, const char *, unsigned *, - unsigned *, bool, bool *); - - const char *parse_std_ext (const char *); - - const char *parse_multiletter_ext (const char *, const char *, - const char *); - - void handle_implied_ext (riscv_subset_t *); - -public: - ~riscv_subset_list (); - - void add (const char *, int, int, bool, bool); - - void add (const char *, bool); - - riscv_subset_t *lookup (const char *, - int major_version = RISCV_DONT_CARE_VERSION, - int minor_version = RISCV_DONT_CARE_VERSION) const; - - std::string to_string (bool) const; - - unsigned xlen() const {return m_xlen;}; - - static riscv_subset_list *parse (const char *, location_t); - -}; - static const char *riscv_supported_std_ext (void); static riscv_subset_list *current_subset_list = NULL; diff --git a/gcc/config/riscv/riscv-protos.h b/gcc/config/riscv/riscv-protos.h index 256dab1d0cf..1a258553d73 100644 --- a/gcc/config/riscv/riscv-protos.h +++ b/gcc/config/riscv/riscv-protos.h @@ -108,4 +108,71 @@ struct riscv_cpu_info { extern const riscv_cpu_info *riscv_find_cpu (const char *); +#define RISCV_DONT_CARE_VERSION -1 + +/* Subset info. */ +struct riscv_subset_t +{ + riscv_subset_t (); + + std::string name; + int major_version; + int minor_version; + struct riscv_subset_t *next; + + bool explicit_version_p; + bool implied_p; +}; + +/* Subset list. */ +class riscv_subset_list +{ +private: + /* Original arch string. */ + const char *m_arch; + + /* Location of arch string, used for report error. */ + location_t m_loc; + + /* Head of subset info list. */ + riscv_subset_t *m_head; + + /* Tail of subset info list. */ + riscv_subset_t *m_tail; + + /* X-len of m_arch. */ + unsigned m_xlen; + + riscv_subset_list (const char *, location_t); + + const char *parsing_subset_version (const char *, const char *, unsigned *, + unsigned *, bool, bool *); + + const char *parse_std_ext (const char *); + + const char *parse_multiletter_ext (const char *, const char *, + const char *); + + void handle_implied_ext (riscv_subset_t *); + +public: + ~riscv_subset_list (); + + void add (const char *, int, int, bool, bool); + + void add (const char *, bool); + + riscv_subset_t *lookup (const char *, + int major_version = RISCV_DONT_CARE_VERSION, + int minor_version = RISCV_DONT_CARE_VERSION) const; + + std::string to_string (bool) const; + + unsigned xlen () const {return m_xlen;}; + + static riscv_subset_list *parse (const char *, location_t); + + int match_score (riscv_subset_list *) const; +}; + #endif /* ! GCC_RISCV_PROTOS_H */ -- 2.29.2