diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-10-05 19:07:53 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-05 19:07:53 +0200 |
| commit | 8e31e98ff97b0977ba9d760aea5214eb67fc10e4 (patch) | |
| tree | 2ee6f059ac4b721a2d58683f5037a5ebcbb70379 /src/bootstrap | |
| parent | e561499e90d354b651ea23c93d2441ba971f6522 (diff) | |
| parent | 6edd0b356fac7585b27b14b4b9e6cd2b29537726 (diff) | |
| download | rust-8e31e98ff97b0977ba9d760aea5214eb67fc10e4.tar.gz rust-8e31e98ff97b0977ba9d760aea5214eb67fc10e4.zip | |
Rollup merge of #130555 - hegza:rv32e, r=workingjubilee
Initial support for riscv32{e|em|emc}_unknown_none_elf
We have a research prototype of an RV32EMC target and have been successfully running the e, em, emc programs on it. I'm hoping upstreaming this configuration would make the target maintenance slightly easier.
Configuration is based on the respective {i, im, imc} variants. As defined in RISC-V Unprivileged Spec. 20191213, the only change in RVE wrt. RVI is to reduce the number of integer registers to 16 (x0-x15), which also implies
- 2 callee saved registers instead of 12
- 32-bit / 4-byte stack alignment instead of 128 bits / 16 bytes
My initial presumption is that this will not impact how the target is defined for the compiler but only becomes relevant at the runtime level. I am willing to investigate, though.
EDIT: LLVM is now told about the presumed 32-bit stack alignment.
`@Disasm` `@romancardenas`
Diffstat (limited to 'src/bootstrap')
| -rw-r--r-- | src/bootstrap/src/core/sanity.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/bootstrap/src/core/sanity.rs b/src/bootstrap/src/core/sanity.rs index 888ba8e2a3f..11260f87d00 100644 --- a/src/bootstrap/src/core/sanity.rs +++ b/src/bootstrap/src/core/sanity.rs @@ -37,6 +37,9 @@ pub struct Finder { const STAGE0_MISSING_TARGETS: &[&str] = &[ // just a dummy comment so the list doesn't get onelined "armv7-rtems-eabihf", + "riscv32e-unknown-none-elf", + "riscv32em-unknown-none-elf", + "riscv32emc-unknown-none-elf", ]; /// Minimum version threshold for libstdc++ required when using prebuilt LLVM |
