[PATCH 0/5] RISC-V: Add Ratified Cache Management Operation ISA Extensions (with paren)

Tsukasa OI research_trasio@irq.a4lg.com
Wed Feb 9 02:29:27 GMT 2022


This patchset is a modified version of:
<https://sourceware.org/pipermail/binutils/2021-December/118909.html>

GitHub:
<https://github.com/a4lg/binutils-gdb/tree/riscv-CMOs> (original; 2021-12-16, rebased)
<https://github.com/a4lg/binutils-gdb/tree/riscv-CMOs-with-paren> (new: 2022-02-09)


There seems a discussion to change operand of cbo.* instructions on:
<https://github.com/riscv/riscv-CMOs/issues/47>.

I have a little preference for old one but it's not bad to have both
options (as complete patchsets).

Note that however, the original patchset is *NOT OUTDATED* yet.
It implements Zicbom/Zicboz instruction like:

    cbo.zero    a0

This new patchset implements Zicbom/Zicboz instructions like:

    cbo.zero    (a0)
    cbo.zero    0(a0)    # only zero is allowed

Actually, my first attempt to implement cbo.* instructions used the same
format as *new* patchset (I modified before submitting the first
patchset for compliance to the specification document).

This version requires extra checking (0(a0) actually allows
EXPRESSION_RESULTS_IN_ZERO(a0)) so I added a few extra tests.
It will also reject operand format in older patchset.

Old patchset and new patchset are mutually exclusive and should follow
the conclusion of the discussion above.

Thanks,
Tsukasa




Tsukasa OI (5):
  RISC-V: Add mininal support for Zicbo[mpz]
  RISC-V: Cache management instructions
  RISC-V: Cache management instruction testcases
  RISC-V: Prefetch hint instructions and operand set
  RISC-V: Prefetch hint instruction testcases

 bfd/elfxx-riscv.c                     |  9 +++++++++
 gas/config/tc-riscv.c                 | 18 ++++++++++++++++++
 gas/testsuite/gas/riscv/zicbom-fail.d |  3 +++
 gas/testsuite/gas/riscv/zicbom-fail.l |  7 +++++++
 gas/testsuite/gas/riscv/zicbom-fail.s |  7 +++++++
 gas/testsuite/gas/riscv/zicbom.d      | 15 +++++++++++++++
 gas/testsuite/gas/riscv/zicbom.s      |  7 +++++++
 gas/testsuite/gas/riscv/zicbop-fail.d |  3 +++
 gas/testsuite/gas/riscv/zicbop-fail.l |  4 ++++
 gas/testsuite/gas/riscv/zicbop-fail.s |  4 ++++
 gas/testsuite/gas/riscv/zicbop.d      | 12 ++++++++++++
 gas/testsuite/gas/riscv/zicbop.s      |  4 ++++
 gas/testsuite/gas/riscv/zicboz-fail.d |  3 +++
 gas/testsuite/gas/riscv/zicboz-fail.l |  3 +++
 gas/testsuite/gas/riscv/zicboz-fail.s |  3 +++
 gas/testsuite/gas/riscv/zicboz.d      | 12 ++++++++++++
 gas/testsuite/gas/riscv/zicboz.s      |  4 ++++
 include/opcode/riscv-opc.h            | 16 ++++++++++++++++
 include/opcode/riscv.h                |  3 +++
 opcodes/riscv-dis.c                   |  4 ++++
 opcodes/riscv-opc.c                   |  9 +++++++++
 21 files changed, 150 insertions(+)
 create mode 100644 gas/testsuite/gas/riscv/zicbom-fail.d
 create mode 100644 gas/testsuite/gas/riscv/zicbom-fail.l
 create mode 100644 gas/testsuite/gas/riscv/zicbom-fail.s
 create mode 100644 gas/testsuite/gas/riscv/zicbom.d
 create mode 100644 gas/testsuite/gas/riscv/zicbom.s
 create mode 100644 gas/testsuite/gas/riscv/zicbop-fail.d
 create mode 100644 gas/testsuite/gas/riscv/zicbop-fail.l
 create mode 100644 gas/testsuite/gas/riscv/zicbop-fail.s
 create mode 100644 gas/testsuite/gas/riscv/zicbop.d
 create mode 100644 gas/testsuite/gas/riscv/zicbop.s
 create mode 100644 gas/testsuite/gas/riscv/zicboz-fail.d
 create mode 100644 gas/testsuite/gas/riscv/zicboz-fail.l
 create mode 100644 gas/testsuite/gas/riscv/zicboz-fail.s
 create mode 100644 gas/testsuite/gas/riscv/zicboz.d
 create mode 100644 gas/testsuite/gas/riscv/zicboz.s


base-commit: a37603c43f8da7983ed53b567ea30ce66066daa2
-- 
2.32.0



More information about the Binutils mailing list