X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=bfd%2Fcpu-riscv.c;h=5deff968a740752b6c6bfa267c99ac01ec39176c;hb=ddc01737d34f16074b2c9a92c5a808be5c91340f;hp=ce87ccf23801451b91f919bf3e51385fcd35ddd5;hpb=3d73d29e4eff8701ae6251347d03dd6057911178;p=binutils-gdb.git diff --git a/bfd/cpu-riscv.c b/bfd/cpu-riscv.c index ce87ccf2380..5deff968a74 100644 --- a/bfd/cpu-riscv.c +++ b/bfd/cpu-riscv.c @@ -1,5 +1,5 @@ /* BFD backend for RISC-V - Copyright (C) 2011-2021 Free Software Foundation, Inc. + Copyright (C) 2011-2022 Free Software Foundation, Inc. Contributed by Andrew Waterman (andrew@sifive.com). Based on MIPS target. @@ -39,11 +39,11 @@ riscv_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b) /* Return TRUE if STRING matches the architecture described by INFO. */ -static bfd_boolean +static bool riscv_scan (const struct bfd_arch_info *info, const char *string) { if (bfd_default_scan (info, string)) - return TRUE; + return true; /* The incoming STRING might take the form of riscv:rvXXzzz, where XX is 32 or 64, and zzz are one or more extension characters. As we @@ -59,9 +59,9 @@ riscv_scan (const struct bfd_arch_info *info, const char *string) if (!info->the_default && strncasecmp (string, info->printable_name, strlen (info->printable_name)) == 0) - return TRUE; + return true; - return FALSE; + return false; } #define N(BITS, NUMBER, PRINT, DEFAULT, NEXT) \ @@ -95,13 +95,13 @@ enum and each entry except the last should end with NN (my enum value). */ static const bfd_arch_info_type arch_info_struct[] = { - N (64, bfd_mach_riscv64, "riscv:rv64", FALSE, NN (I_riscv64)), - N (32, bfd_mach_riscv32, "riscv:rv32", FALSE, NULL) + N (64, bfd_mach_riscv64, "riscv:rv64", false, NN (I_riscv64)), + N (32, bfd_mach_riscv32, "riscv:rv32", false, NULL) }; /* The default architecture is riscv:rv64. */ const bfd_arch_info_type bfd_riscv_arch = - N (64, 0, "riscv", TRUE, &arch_info_struct[0]); + N (64, 0, "riscv", true, &arch_info_struct[0]); /* List for all supported ISA spec versions. */ const struct riscv_spec riscv_isa_specs[] = @@ -117,6 +117,7 @@ const struct riscv_spec riscv_priv_specs[] = {"1.9.1", PRIV_SPEC_CLASS_1P9P1}, {"1.10", PRIV_SPEC_CLASS_1P10}, {"1.11", PRIV_SPEC_CLASS_1P11}, + {"1.12", PRIV_SPEC_CLASS_1P12}, }; /* Get the corresponding CSR version class by giving privilege @@ -140,3 +141,12 @@ riscv_get_priv_spec_class_from_numbers (unsigned int major, RISCV_GET_PRIV_SPEC_CLASS (buf, class_t); *class = class_t; } + +/* Define mapping symbols for riscv. */ + +bool +riscv_elf_is_mapping_symbols (const char *name) +{ + return (!strncmp (name, "$d", 2) + || !strncmp (name, "$x", 2)); +}