[PATCH] RISC-V: Support pointer masking extension 1.0

Nelson Chu nelson@rivosinc.com
Tue Mar 18 06:35:01 GMT 2025


Okay, committed, and also added assembler conflict testsuite.

Thanks
Nelson

On Mon, Mar 17, 2025 at 8:18 PM Jerry Zhang Jian <jerry.zhangjian@sifive.com>
wrote:

> - Adding Ssnpm, Smnpm, Smmpm, Sspm, and Supm
> - No new CSR added
> - Pointer masking only applies to RV64
> - Ref:
> https://github.com/riscv/riscv-j-extension/releases/download/pointer-masking-ratified/pointer-masking-ratified.pdf
>
> Signed-off-by: Jerry Zhang Jian <jerry.zhangjian@sifive.com>
> ---
>  bfd/elfxx-riscv.c                    | 35 ++++++++++++++++++++++++++++
>  gas/testsuite/gas/riscv/march-help.l |  5 ++++
>  2 files changed, 40 insertions(+)
>
> diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
> index fd2cb74df80..079ab574fa7 100644
> --- a/bfd/elfxx-riscv.c
> +++ b/bfd/elfxx-riscv.c
> @@ -1477,6 +1477,11 @@ static struct riscv_supported_ext
> riscv_supported_std_s_ext[] =
>    {"svnapot",          ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>    {"svpbmt",           ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>    {"ssqosid",          ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
> +  {"ssnpm",            ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
> +  {"smnpm",            ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
> +  {"smmpm",            ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
> +  {"sspm",             ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
> +  {"supm",             ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
>    {NULL, 0, 0, 0, 0}
>  };
>
> @@ -2124,6 +2129,36 @@ riscv_parse_check_conflicts (riscv_parse_subset_t
> *rps)
>         (_("`xtheadvector' is conflict with the `v' extension"));
>        no_conflict = false;
>      }
> +  if (riscv_lookup_subset (rps->subset_list, "ssnpm", &subset) && xlen !=
> 64)
> +    {
> +      rps->error_handler (_ ("rv%d does not support the `ssnpm'
> extension"),
> +                         xlen);
> +      no_conflict = false;
> +    }
> +  if (riscv_lookup_subset (rps->subset_list, "smnpm", &subset) && xlen !=
> 64)
> +    {
> +      rps->error_handler (_ ("rv%d does not support the `smnpm'
> extension"),
> +                         xlen);
> +      no_conflict = false;
> +    }
> +  if (riscv_lookup_subset (rps->subset_list, "smmpm", &subset) && xlen !=
> 64)
> +    {
> +      rps->error_handler (_ ("rv%d does not support the `smmpm'
> extension"),
> +                         xlen);
> +      no_conflict = false;
> +    }
> +  if (riscv_lookup_subset (rps->subset_list, "sspm", &subset) && xlen !=
> 64)
> +    {
> +      rps->error_handler (_ ("rv%d does not support the `sspm'
> extension"),
> +                         xlen);
> +      no_conflict = false;
> +    }
> +  if (riscv_lookup_subset (rps->subset_list, "supm", &subset) && xlen !=
> 64)
> +    {
> +      rps->error_handler (_ ("rv%d does not support the `supm'
> extension"),
> +                         xlen);
> +      no_conflict = false;
> +    }
>
>    bool support_zve = false;
>    bool support_zvl = false;
> diff --git a/gas/testsuite/gas/riscv/march-help.l
> b/gas/testsuite/gas/riscv/march-help.l
> index b7975ff9ade..7eb614003c5 100644
> --- a/gas/testsuite/gas/riscv/march-help.l
> +++ b/gas/testsuite/gas/riscv/march-help.l
> @@ -140,6 +140,11 @@ All available -march extensions for RISC-V:
>         svnapot                                 1.0
>         svpbmt                                  1.0
>         ssqosid                                 1.0
> +       ssnpm                                   1.0
> +       smnpm                                   1.0
> +       smmpm                                   1.0
> +       sspm                                    1.0
> +       supm                                    1.0
>         xcvalu                                  1.0
>         xcvbi                                   1.0
>         xcvbitmanip                             1.0
> --
> 2.46.0
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://sourceware.org/pipermail/binutils/attachments/20250318/af07dc35/attachment.htm>


More information about the Binutils mailing list