This repository has been archived by the owner on May 7, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 274
Support Q-extension #99
Open
kito-cheng
wants to merge
15
commits into
riscv-next
Choose a base branch
from
q-ext
base: riscv-next
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains 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
Loads on RISC-V are sign-extending by default, but we weren't telling GCC this in our PIC load patterns. This corrects the problem, and adds a zero-extending pattern as well. gcc/ChangeLog 2017-05-09 Palmer Dabbelt <[email protected]> * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define. * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s, mark as a sign-extending load. (local_pic_load_u): Define.
GCC may generate non-legitimate address due to we allow some load/store with non-legitimate address in pic.md. 2017-05-12 Kito Cheng <[email protected]> * config/riscv/riscv.c (riscv_legitimize_move): Handle non-legitimate address.
…mtune 2017-05-18 Andrew Waterman <[email protected]> * config/riscv/riscv.c (riscv_option_override): Conditionally set TARGET_STRICT_ALIGN based upon -mtune argument.
This documentation is patterned off the aarch64 -mcmodel documentation. gcc/ChangeLog: 2017-07-27 Palmer Dabbelt <[email protected]> * doc/invoke.texi (RISC-V Options): Explicitly name the medlow and medany code models, and describe what they do.
This changes makes GCC asm output use instruction names that are consistent with the RISC-V ISA manual. - Add 'i' letter to riscv_print_operand that prints an i character if the operand is not a register. - Update riscv.md to add %i2 to instructions with register register and register immediate variants.
https://gcc.gnu.org/ml/gcc/2017-08/msg00202.html We should make sure this doesn't regress on the test suite before sending upstream.
This reverts commit 18b6db6.
This supports reducing the stack alignment to 8 bytes for RV32I.
DO NOT MERGE until testing done. |
@aswaterman btw, I was implemented Q extension for RV32 too, however binutils forbid RV32*Q now, should I support that? I've removed those part in this PR. |
I think for now we should forbid RV32Q everywhere. If the RISC-V Foundation decides RV32Q should be supported in the future, we can enable it. But going the other direction is much harder :) |
OK, so I just discard those code :P |
Yeah, but maybe don't delete the branch, so we can revive it later if we want. |
Hmm, hold the code gen part but forbid in -march (forbid all rv32q), and -mabi (forbid ilp32q) ? |
Yeah, that sounds like a good idea to me. @palmer-dabbelt OK? |
Current test result:
Simulator: spike |
Fail cases: gcc
g++
|
Current status:
|
palmer-dabbelt
force-pushed
the
riscv-next
branch
3 times, most recently
from
October 25, 2017 23:18
da145f4
to
d45838f
Compare
palmer-dabbelt
force-pushed
the
riscv-next
branch
from
October 31, 2017 18:32
a0abddc
to
ac43954
Compare
palmer-dabbelt
force-pushed
the
riscv-next
branch
12 times, most recently
from
November 8, 2017 23:56
61a42d9
to
d2cc398
Compare
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Not testing with spike yet, but able to build rv64gq toolchain.