Closed
Conversation
18fd6fe to
2e568b5
Compare
5cf1bf3 to
f316596
Compare
9990759 to
1e82998
Compare
1646693 to
e1df9a2
Compare
f7966f2 to
915ba1f
Compare
abf41f3 to
bce8fb8
Compare
be0809f to
b35de7b
Compare
3962347 to
ee5f40e
Compare
2f0c059 to
0086ee8
Compare
… CSRs
[DO NOT MERGE]
Until Pointer masking extensions are frozen/ratified and the final version
number is determined, this patch should not be merged upstream. This
commit uses unratified version 0.5(.4) as in the latest PDF documentation
(instead of possible 1.0 after ratification).
This commit adds pointer masking extensions ('Zjpm', 'Smjpm', 'Ssjpm' and
'Smjpmbare16') and its CSRs based on the latest commit of the RISC-V
Pointer Masking draft.
<riscv/riscv-j-extension@4839cc5>
Specification Notes:
'Smjpm', 'Ssjpm' and 'Zjpm' do not depend each other, allowing selection of
per-privilege pointer masking implementation.
Although pointer masking is only available (can be enabled) on RV64, pointer
masking CSRs are accessible from RV32. That is why those extensions are
*not* RV64 only.
***Draft Note***
Because CSR addresses are not fixed yet, this commit uses tentative
addresses (a part of custom CSR space).
bfd/ChangeLog:
* elfxx-riscv.c (riscv_implicit_subsets) Add implications to
'Zicsr'. (riscv_supported_std_z_ext): Add 'Zjpm' extension to
valid 'Z' extension list.
(riscv_supported_std_s_ext): Add 'Smjpm', 'Ssjpm' and 'Smjpmbare16'
extensions to valid 'S' extension list.
gas/ChangeLog:
* config/tc-riscv.c (enum riscv_csr_class): Add CSR classes for
pointer masking extensions. (riscv_csr_address): Add handling for
new CSR classes.
* testsuite/gas/riscv/csr-dw-regnums.d: Add new CSRs.
* testsuite/gas/riscv/csr-dw-regnums.s: Likewise.
* testsuite/gas/riscv/csr.s: Add new CSRs.
* testsuite/gas/riscv/csr-version-1p9p1.d: Likewise.
* testsuite/gas/riscv/csr-version-1p9p1.l: Likewise.
* testsuite/gas/riscv/csr-version-1p10.d: Likewise.
* testsuite/gas/riscv/csr-version-1p10.l: Likewise.
* testsuite/gas/riscv/csr-version-1p11.d: Likewise.
* testsuite/gas/riscv/csr-version-1p11.l: Likewise.
* testsuite/gas/riscv/csr-version-1p12.d: Likewise.
* testsuite/gas/riscv/csr-version-1p12.l: Likewise.
include/ChangeLog:
* opcode/riscv-opc.h (CSR_MPM, CSR_VSPM, CSR_SPM, CSR_UPM): New
CSR macros.
**DEVELOPMENT ENVIRONMENT ONLY** The attached script can be used to replace related source files when the CSR addresses of "upm", "spm", "vspm" and "mpm" (now tentative) are determined.
Owner
Author
|
Took over by #131. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wiki Page (details): https://github.com/a4lg/binutils-gdb/wiki/riscv_zjpm