mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-03-19 13:51:44 +08:00
RISC-V: Support pointer masking extension 1.0
- 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>
This commit is contained in:
parent
614d1b72ce
commit
7b2a5f7183
@ -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}
|
||||
};
|
||||
|
||||
@ -2125,6 +2130,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;
|
||||
|
2
gas/NEWS
2
gas/NEWS
@ -6,7 +6,7 @@
|
||||
directives, the file need to be rebuilt since 2.45.
|
||||
|
||||
* Add support for RISC-V standard extensions:
|
||||
ssqosid v1.0.
|
||||
ssqosid v1.0, ssnpm v1.0, smnpm v1.0, smmpm v1.0, sspm v1.0, supm v1.0.
|
||||
|
||||
* Add support for RISC-V vendor extensions:
|
||||
T-Head: xtheadvdot v1.0.
|
||||
|
@ -0,0 +1,3 @@
|
||||
#as: -march=rv32i_ssnpm_smnpm_smmpm_sspm_supm
|
||||
#source: empty.s
|
||||
#error_output: march-fail-rv32-pointer-masking.l
|
@ -0,0 +1,6 @@
|
||||
.*Assembler messages:
|
||||
.*Error: rv32 does not support the `ssnpm' extension
|
||||
.*Error: rv32 does not support the `smnpm' extension
|
||||
.*Error: rv32 does not support the `smmpm' extension
|
||||
.*Error: rv32 does not support the `sspm' extension
|
||||
.*Error: rv32 does not support the `supm' extension
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user