-
Notifications
You must be signed in to change notification settings - Fork 234
Align bitmanip instructions with v.1.00 and draft v.0.93 of the spec #267
base: riscv-binutils-2.35-rvb
Are you sure you want to change the base?
Align bitmanip instructions with v.1.00 and draft v.0.93 of the spec #267
Conversation
In particular: - Zbb: Rename pcnt* instructions to cpop* - Zbs: Rename sb* instructions to b* - Zbe: Rename bext*/bdep* insctructions to bcompress*/bdecompress*. Stricly speaking this only happens as part of v.0.94. But without this change, there are two bext instructions (the other one from Zbs due to renaming sbext to bext). - Zbp: Re-add slo[iw], sro[iw]. These are still listed in v.0.93 and even v.0.94. - All: Rename *u.w instructions to *.uw - Zbp: fix XLEN for xperm.w
Binutils support has already been merged upstream and is maintained there. |
Thanks for the quick response @cmuellner ! The stuff at the posted link seems to be outdated (from 2013). Anyway, what I should probably have clarified: even though bitmanip v.1.00 is now getting included upstream, there are still plenty of instructions in the draft v.0.93 that are not part of v.1.00 and thus will not be upstreamed. My understanding is that these instructions remain part of the draft bitmanip extension which is continued to be developed. This PR aligns the
So the intent of this PR is to provide a basis for people needing both the ratified and draft parts of the extension. |
Sorry, I copied the wrong link. Here is the correct one: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git I am not aware of any plans regarding the instructions, which did not make it into the ratified Zb* specification. Regarding the branch, you want to add your changes to: Also note, that we cannot support instructions, that are specified in outdated versions of a specification. |
Another problem is that this branch contains work that we can't upstream. If there is work here that needs to be preserved, it would be better to create a new clean branch that contains only work that is upstreamable. That is, we need to start with upstream sources, and then start adding patches from known people with the necessary paperwork. Speaking of which, patches for GNU tools require a copyright assignment or for gcc optionally a DCO instead. I checked the FSF and I don't see a copyright assignment for you. If your employer has an assignment that can work, but I don't know who you work for. If you are serious about contributing, then you or your employer should sign an FSF copyright assignment. We can't accept patches from you without one. You can start the process by sending email to [email protected] and stating what you want to contribute to (e,g, binutils, gcc, gdb, glibc). We either need a personal assignment from you and a disclaimer from your employer, or an assignment from your employer. The latter is generally better if multiple people want to contribute, but is much harder to get as some companies won't sign them. If you want to contribute to multiple projects, you may need multiple assignments/disclaimers. |
Thanks for clarifying the situation @cmuellner and @jim-wilson . I agree it doesn't make sense to merge this PR. I should probably first ask in the bitmanip repository what the best way forward is. However, I suggest to leave this PR open for the moment as there is, at least to my knowledge, no other binutils version available that supports v.1.00 + v.0.93 of the bitmanip spec. But there are still hardware implementations that have support for the bitmanip instructions not part of v.1.00. This is also why I did this work. As I am not very experienced with compilers/binutils, starting from upstream would have been out of scope for me but starting from this branch was feasible. I just needed something to verify our hardware. Regarding the copyright assignment: I am working for lowRISC. It's possible that we already have an assignment but I am not sure. I can check internally next week. |
This release updates the meson cross files to make the toolchains more easily configurable. The tool versions are the same as in the previous release. - Binutils 2.35 - GCC: 10.2.0 - Clang/LLVM: `fa038e03504c7d0dfd438b1dfdd6da7081e75617` (2020-05-25) - GDB 11.1 - Binutils: `7c9dd840fbb6a1171a51feb08afb859288615137` (riscv-binutils-2.35-rvb) with Pirmin's bitmanip 1.00+0.93 PR patch (riscvarchive/riscv-binutils-gdb#267). - GCC: `73055647d33c0b63a3125c372019d1dac0f8ac34` (RISC-V bitmanip fork, branch riscv-gcc-10.2.0-rvb, commit 73055647d33 from 2021-07-09) - Clang/LLVM: 13.0.1 - GDB 11.1 Signed-off-by: Luís Marques <[email protected]>
This release updates the meson cross files to make the toolchains more easily configurable. The tool versions are the same as in the previous release. - Binutils 2.35 - GCC: 10.2.0 - Clang/LLVM: `fa038e03504c7d0dfd438b1dfdd6da7081e75617` (2020-05-25) - GDB 11.1 - Binutils: `7c9dd840fbb6a1171a51feb08afb859288615137` (riscv-binutils-2.35-rvb) with Pirmin's bitmanip 1.00+0.93 PR patch (riscvarchive/riscv-binutils-gdb#267). - GCC: `73055647d33c0b63a3125c372019d1dac0f8ac34` (RISC-V bitmanip fork, branch riscv-gcc-10.2.0-rvb, commit 73055647d33 from 2021-07-09) - Clang/LLVM: 13.0.1 - GDB 11.1 Signed-off-by: Luís Marques <[email protected]>
This release updates the meson cross files to make the toolchains more easily configurable. The tool versions are the same as in the previous release. - Binutils 2.35 - GCC: 10.2.0 - Clang/LLVM: `fa038e03504c7d0dfd438b1dfdd6da7081e75617` (2020-05-25) - GDB 11.1 - Binutils: `7c9dd840fbb6a1171a51feb08afb859288615137` (riscv-binutils-2.35-rvb) with Pirmin's bitmanip 1.00+0.93 PR patch (riscvarchive/riscv-binutils-gdb#267). - GCC: `73055647d33c0b63a3125c372019d1dac0f8ac34` (RISC-V bitmanip fork, branch riscv-gcc-10.2.0-rvb, commit 73055647d33 from 2021-07-09) - Clang/LLVM: 13.0.1 - GDB 11.1 Signed-off-by: Luís Marques <[email protected]>
This release updates the meson cross files to make the toolchains more easily configurable. The tool versions are the same as in the previous release. - Binutils 2.35 - GCC: 10.2.0 - Clang/LLVM: `fa038e03504c7d0dfd438b1dfdd6da7081e75617` (2020-05-25) - GDB 11.1 - Binutils: `7c9dd840fbb6a1171a51feb08afb859288615137` (riscv-binutils-2.35-rvb) with Pirmin's bitmanip 1.00+0.93 PR patch (riscvarchive/riscv-binutils-gdb#267). - GCC: `73055647d33c0b63a3125c372019d1dac0f8ac34` (RISC-V bitmanip fork, branch riscv-gcc-10.2.0-rvb, commit 73055647d33 from 2021-07-09) - Clang/LLVM: 13.0.1 - GDB 11.1 Signed-off-by: Luís Marques <[email protected]>
This release updates the meson cross files to make the toolchains more easily configurable. The tool versions for the bitmanip variant are: - Binutils 2.35 - GCC: 10.2.0 - Clang/LLVM: 13.0.1 - GDB 11.1 - Binutils: `7c9dd840fbb6a1171a51feb08afb859288615137` (riscv-binutils-2.35-rvb) with Pirmin's bitmanip 1.00+0.93 PR patch (riscvarchive/riscv-binutils-gdb#267). - GCC: `73055647d33c0b63a3125c372019d1dac0f8ac34` (RISC-V bitmanip fork, branch riscv-gcc-10.2.0-rvb, commit 73055647d33 from 2021-07-09) - Clang/LLVM: 13.0.1 - GDB 11.1 Signed-off-by: Luís Marques <[email protected]>
This release updates the meson cross files to make the toolchains more easily configurable. The tool versions for the bitmanip variant are: - Binutils 2.35 - GCC: 10.2.0 - Clang/LLVM: 13.0.1 - GDB 11.1 - Binutils: `7c9dd840fbb6a1171a51feb08afb859288615137` (riscv-binutils-2.35-rvb) with Pirmin's bitmanip 1.00+0.93 PR patch (riscvarchive/riscv-binutils-gdb#267). - GCC: `73055647d33c0b63a3125c372019d1dac0f8ac34` (RISC-V bitmanip fork, branch riscv-gcc-10.2.0-rvb, commit 73055647d33 from 2021-07-09) - Clang/LLVM: 13.0.1 - GDB 11.1 Signed-off-by: Luís Marques <[email protected]>
This release updates the meson cross files to make the toolchains more easily configurable. The tool versions for the bitmanip variant are: - Binutils 2.35 - GCC: 10.2.0 - Clang/LLVM: 13.0.1 - GDB 11.1 - Binutils: `7c9dd840fbb6a1171a51feb08afb859288615137` (riscv-binutils-2.35-rvb) with Pirmin's bitmanip 1.00+0.93 PR patch (riscvarchive/riscv-binutils-gdb#267). - GCC: `73055647d33c0b63a3125c372019d1dac0f8ac34` (RISC-V bitmanip fork, branch riscv-gcc-10.2.0-rvb, commit 73055647d33 from 2021-07-09) - Clang/LLVM: 13.0.1 - GDB 11.1 Signed-off-by: Luís Marques <[email protected]>
This release updates the meson cross files to make the toolchains more easily configurable. The tool versions for the bitmanip variant are: - Binutils 2.35 - GCC: 10.2.0 - Clang/LLVM: 13.0.1 - GDB 11.1 - Binutils: `7c9dd840fbb6a1171a51feb08afb859288615137` (riscv-binutils-2.35-rvb) with Pirmin's bitmanip 1.00+0.93 PR patch (riscvarchive/riscv-binutils-gdb#267). - GCC: `73055647d33c0b63a3125c372019d1dac0f8ac34` (RISC-V bitmanip fork, branch riscv-gcc-10.2.0-rvb, commit 73055647d33 from 2021-07-09) - Clang/LLVM: 13.0.1 - GDB 11.1 Signed-off-by: Luís Marques <[email protected]>
This release updates the meson cross files to make the toolchains more easily configurable. The tool versions for the bitmanip variant are: - Binutils 2.35 - GCC: 10.2.0 - Clang/LLVM: 13.0.1 - GDB 11.1 - Binutils: `7c9dd840fbb6a1171a51feb08afb859288615137` (riscv-binutils-2.35-rvb) with Pirmin's bitmanip 1.00+0.93 PR patch (riscvarchive/riscv-binutils-gdb#267). - GCC: `73055647d33c0b63a3125c372019d1dac0f8ac34` (RISC-V bitmanip fork, branch riscv-gcc-10.2.0-rvb, commit 73055647d33 from 2021-07-09) - Clang/LLVM: 13.0.1 - GDB 11.1 Signed-off-by: Luís Marques <[email protected]>
Updated data to v0.0-10334-g01b2cace6 based on 01b2cac from https://github.com/lowRISC/opentitan. > commit 01b2cac > Author: Luís Marques <[email protected]> > Date: Thu Feb 10 21:48:11 2022 +0000 > > Update toolchain to release 20220210-1 with bitmanip support > > This release updates the meson cross files to make the toolchains more > easily configurable. The tool versions for the bitmanip variant are: > > - Binutils 2.35 > - GCC: 10.2.0 > - Clang/LLVM: 13.0.1 > - GDB 11.1 > > - Binutils: `7c9dd840fbb6a1171a51feb08afb859288615137` > (riscv-binutils-2.35-rvb) with Pirmin's bitmanip 1.00+0.93 PR patch > (riscvarchive/riscv-binutils-gdb#267). > - GCC: `73055647d33c0b63a3125c372019d1dac0f8ac34` (RISC-V bitmanip fork, > branch riscv-gcc-10.2.0-rvb, commit 73055647d33 from 2021-07-09) > - Clang/LLVM: 13.0.1 > - GDB 11.1 > > Signed-off-by: Luís Marques <[email protected]> > Updated using 0.0.post126 from https://github.com/litex-hub/litex-data-auto
This release updates the meson cross files to make the toolchains more easily configurable. The tool versions for the bitmanip variant are: - Binutils 2.35 - GCC: 10.2.0 - Clang/LLVM: 13.0.1 - GDB 11.1 - Binutils: `7c9dd840fbb6a1171a51feb08afb859288615137` (riscv-binutils-2.35-rvb) with Pirmin's bitmanip 1.00+0.93 PR patch (riscvarchive/riscv-binutils-gdb#267). - GCC: `73055647d33c0b63a3125c372019d1dac0f8ac34` (RISC-V bitmanip fork, branch riscv-gcc-10.2.0-rvb, commit 73055647d33 from 2021-07-09) - Clang/LLVM: 13.0.1 - GDB 11.1 Signed-off-by: Luís Marques <[email protected]>
In particular: