/* 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.
/* 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
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) \
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[] =
{"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
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));
+}