diff options
author | Hau Hsu <hau.hsu@sifive.com> | 2024-06-18 14:49:04 +0800 |
---|---|---|
committer | Nelson Chu <nelson@rivosinc.com> | 2024-06-18 15:06:34 +0800 |
commit | 7003edc383feaa72c13310d075d383c2a98a6a6e (patch) | |
tree | 5c36a828df0eda14aa56dcec63b53455b26b8590 /include/opcode/riscv-opc.h | |
parent | 88729e96162f0293177d2324fc8dc6cd78aac793 (diff) | |
download | fsf-binutils-gdb-7003edc383feaa72c13310d075d383c2a98a6a6e.zip fsf-binutils-gdb-7003edc383feaa72c13310d075d383c2a98a6a6e.tar.gz fsf-binutils-gdb-7003edc383feaa72c13310d075d383c2a98a6a6e.tar.bz2 |
RISC-V: Add SiFive cease extension v1.0
Add SiFive cease extension,
https://sifive.cdn.prismic.io/sifive/767804da-53b2-4893-97d5-b7c030ae0a94_s76mc_core_complex_manual_21G3.pdf
This aligns LLVM:
* https://llvm.org/docs/RISCVUsage.html
* https://github.com/llvm/llvm-project/pull/83896
bfd/ChangeLog:
* elfxx-riscv.c (riscv_supported_vendor_x_ext): Add support for
'xsfcease'.
(riscv_multi_subset_supports): Handle INSN_CLASS_XSFCEASE.
(riscv_multi_subset_supports_ext): Handle INSN_CLASS_XSFCEASE.
gas/ChangeLog:
* doc/c-riscv.texi: Updated.
* testsuite/gas/riscv/march-help.l: Updated.
* testsuite/gas/riscv/sifive-insns.d: Add test case for 'sf.cease'.
* testsuite/gas/riscv/sifive-insns.s: Likewise.
include/ChangeLog:
* opcode/riscv-opc.h (MATCH_SF_CEASE, MASK_SF_CEASE): Define match and
mask encoding for 'sf.cease'.
* opcode/riscv.h (INSN_CLASS_XSFCEASE): Add new instruction class for
'xsfcease'.
opcodes/ChangeLog:
* riscv-opc.c (riscv_opcodes): Add opcode entry for 'sf.cease'.
Diffstat (limited to 'include/opcode/riscv-opc.h')
-rw-r--r-- | include/opcode/riscv-opc.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h index f87822a..8763cdf 100644 --- a/include/opcode/riscv-opc.h +++ b/include/opcode/riscv-opc.h @@ -3155,6 +3155,9 @@ #define MASK_SF_VC_FVW 0xfa00707f #define MATCH_SF_VC_V_FVW 0xf800505b #define MASK_SF_VC_V_FVW 0xfa00707f +/* Vendor-specific (SiFive) cease instruction. */ +#define MATCH_SF_CEASE 0x30500073 +#define MASK_SF_CEASE 0xffffffff /* Unprivileged Counter/Timers CSR addresses. */ #define CSR_CYCLE 0xc00 #define CSR_TIME 0xc01 |