From 59b5bb8c99b2d29d556e1777e58cbb4141b14021 Mon Sep 17 00:00:00 2001 From: Tsukasa OI Date: Sun, 11 Sep 2022 13:00:35 +0000 Subject: [PATCH] UNRATIFIED RISC-V: Add stub support for Pointer masking extensions [DO NOT MERGE] Until Pointer masking extensions are frozen/ratified and the final version number is determined, this patch should not be merged upstream. This commit uses unratified version 0.6(.1) as in the latest PDF documentation (instead of possible 1.0 after ratification). This commit adds pointer masking extensions ('Ssnjpm', 'Smnjpm' and 'Smmjpm') based on the latest commit of the RISC-V Pointer Masking draft. Because it doesn't provide new instructions or CSRs, it only adds extension name / implication support. bfd/ChangeLog: * elfxx-riscv.c (riscv_implicit_subsets): Add implications to 'Zicsr'. (riscv_supported_std_s_ext): Add 'Smmjpm', 'Smnjpm' and 'Ssnjpm' extensions to valid 'S' extension list. --- bfd/elfxx-riscv.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index c070394a366..47c503dc53f 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1184,10 +1184,13 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] = {"zcb", "zca", check_implicit_always}, {"smaia", "ssaia", check_implicit_always}, {"smcntrpmf", "zicsr", check_implicit_always}, + {"smmjpm", "zicsr", check_implicit_always}, + {"smnjpm", "zicsr", check_implicit_always}, {"smstateen", "ssstateen", check_implicit_always}, {"smepmp", "zicsr", check_implicit_always}, {"ssaia", "zicsr", check_implicit_always}, {"sscofpmf", "zicsr", check_implicit_always}, + {"ssnjpm", "zicsr", check_implicit_always}, {"ssstateen", "zicsr", check_implicit_always}, {"sstc", "zicsr", check_implicit_always}, {"svadu", "zicsr", check_implicit_always}, @@ -1332,9 +1335,12 @@ static struct riscv_supported_ext riscv_supported_std_s_ext[] = {"smaia", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"smcntrpmf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"smepmp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"smmjpm", ISA_SPEC_CLASS_DRAFT, 0, 6, 0 }, + {"smnjpm", ISA_SPEC_CLASS_DRAFT, 0, 6, 0 }, {"smstateen", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"ssaia", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"sscofpmf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"ssnjpm", ISA_SPEC_CLASS_DRAFT, 0, 6, 0 }, {"ssstateen", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"sstc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"svadu", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },