[Bug target/116111] New: RISC-V: 'd' extension allowed with -mabi=ilp32e
patrick at rivosinc dot com
gcc-bugzilla@gcc.gnu.org
Fri Jul 26 22:25:01 GMT 2024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116111
Bug ID: 116111
Summary: RISC-V: 'd' extension allowed with -mabi=ilp32e
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: patrick at rivosinc dot com
Target Milestone: ---
I noticed that LLVM disallows the 'd' extension when compiling with
-mabi=ilp32d. When I mentioned it to the LLVM folks they confirmed it was
intentional and brought up concerns about GCC's rv32id ilp32e codegen [1].
>From the PSABI (added in 2021):
> The ILP32E calling convention is not compatible with ISAs that have registers that require load and store alignments of more than 32 bits. In particular, this calling convention must not be used with the D ISA extension.
https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-cc.adoc?plain=1#L449-L450
Do we want to match LLVM's behavior here and similarly disallow 'd' when using
-mabi=ilp32d?
[1] LLVM discussion: https://github.com/llvm/llvm-project/issues/100814
More information about the Gcc-bugs
mailing list