/* RISC-V ELF specific backend routines.
- Copyright (C) 2011-2020 Free Software Foundation, Inc.
+ Copyright (C) 2011-2021 Free Software Foundation, Inc.
Contributed by Andrew Waterman (andrew@sifive.com).
Based on MIPS target.
extern reloc_howto_type *
riscv_elf_rtype_to_howto (bfd *, unsigned int r_type);
-#define RISCV_DONT_CARE_VERSION -1
-
/* The information of architecture attribute. */
struct riscv_subset_t
{
const char *,
int, int);
-extern riscv_subset_t *
+extern bool
riscv_lookup_subset (const riscv_subset_list_t *,
- const char *);
-
-extern riscv_subset_t *
-riscv_lookup_subset_version (const riscv_subset_list_t *,
- const char *,
- int, int);
+ const char *,
+ riscv_subset_t **);
typedef struct
{
...) ATTRIBUTE_PRINTF_1;
unsigned *xlen;
void (*get_default_version) (const char *,
- unsigned int *,
- unsigned int *);
+ int *,
+ int *);
} riscv_parse_subset_t;
-extern bfd_boolean
+extern bool
riscv_parse_subset (riscv_parse_subset_t *,
const char *);
extern size_t
riscv_estimate_digit (unsigned);
-/* ISA extension name class. E.g. "zbb" corresponds to RV_ISA_CLASS_Z,
- "xargs" corresponds to RV_ISA_CLASS_X, etc. */
-
+/* ISA extension prefixed name class. */
typedef enum riscv_isa_ext_class
{
RV_ISA_CLASS_S,
+ RV_ISA_CLASS_H,
RV_ISA_CLASS_Z,
RV_ISA_CLASS_X,
RV_ISA_CLASS_UNKNOWN
riscv_get_prefix_class (const char *);
extern int
-riscv_get_priv_spec_class (const char *, enum riscv_priv_spec_class *);
+riscv_compare_subsets (const char *, const char *);
-extern int
-riscv_get_priv_spec_class_from_numbers (unsigned int,
- unsigned int,
- unsigned int,
- enum riscv_priv_spec_class *);
+extern bool
+bfd_elf32_riscv_restart_relax_sections (struct bfd_link_info *);
-extern const char *
-riscv_get_priv_spec_name (enum riscv_priv_spec_class);
+extern bool
+bfd_elf64_riscv_restart_relax_sections (struct bfd_link_info *);