RISC-V: Drop the privileged spec v1.9 support.
authorNelson Chu <nelson.chu@sifive.com>
Wed, 10 Jun 2020 06:07:54 +0000 (14:07 +0800)
committerNelson Chu <nelson.chu@sifive.com>
Fri, 12 Jun 2020 01:41:20 +0000 (09:41 +0800)
commitd8af286fffa664a4399be2f4f157d2425c50acf1
tree895d6ed7fa1f9b145e45e079bba4c5e234d2cf32
parente9576b7d682047cec216710d09ee30c0c99498f6
RISC-V: Drop the privileged spec v1.9 support.

There is a conflict between v1.9 and v1.9.1 - CSR MISA address.  MISA is
0xf10 in v1.9, but change to 0x301 in v1.9.1.  The change made MISA writable,
but may also cause risk of compatibility.  Binutils already support the
-mpriv-spec options and ELF priv attributes, which can used to choose what
privileged spec you want, and then give a correponding CSR name and address
to use.  But Gdb and other tools don't have the simialr mechanism for now.
However, there are two things can be confirmed,

1. If we don't have a way to control the priv specs, then the changes, like
MISA, will cause risk and hard to maintain.

2. We get the guarantee that the CSR address won't be reused in the future
specs, even if it is dropped.

I'm not sure if Gdb needs to care about the priv spec versions, it is still
discussing.  But drop the priv spec v1.9, and make sure that we won't reuse
the CSR address is a useful solution for now.  Also, we might drop the v1.9.1
in a year or two.  After that, specs above v1.10 should be compatible anyway.

gas/
* testsuite/gas/riscv/priv-reg-fail-version-1p9.d: Removed.
* testsuite/gas/riscv/priv-reg-fail-version-1p9.l: Likewise.
* testsuite/gas/riscv/priv-reg-version-1p9.d: Likewise.

include/
* opcode/riscv-opc.h: Update the defined versions of CSR from
PRIV_SPEC_CLASS_1P9 to PRIV_SPEC_CLASS_1P9P1.  Also, drop the
MISA DECLARE_CSR_ALIAS since it's aborted version is v1.9.
* opcode/riscv.h (enum riscv_priv_spec_class): Remove
PRIV_SPEC_CLASS_1P9.

opcodes/
* riscv-opc.c (priv_specs): Remove v1.9 and PRIV_SPEC_CLASS_1P9.
gas/ChangeLog
gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.d [deleted file]
gas/testsuite/gas/riscv/priv-reg-fail-version-1p9.l [deleted file]
gas/testsuite/gas/riscv/priv-reg-version-1p9.d [deleted file]
include/ChangeLog
include/opcode/riscv-opc.h
include/opcode/riscv.h
opcodes/ChangeLog
opcodes/riscv-opc.c