On Tue, Jan 31, 2017 at 10:01 AM, Richard Henderson <r...@redhat.com> wrote: > On 01/30/2017 04:53 PM, Andrew Waterman wrote: >> The ISA spec references an out-of-date calling convention, and will be >> removed in the next revision to orthogonalize the ABI from the ISA. >> We are in the process of drafting a RISC-V ELF psABI spec, which the >> GCC port targets. >> https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md >> In this calling convention, the GPRs and FPRs are allocated >> separately, which is more performant, especially when XLEN and FLEN >> are not equal. > > Good to know. > > Re the new spec, you don't require arguments stored in two fp registers to be > aligned, but you do require arguments stored in two int registers to be > aligned? Why? > > I see that as a waste when it comes to argument lists (for xlen=32) like > > void foo(class *x, int64_t y, int a, int b, int c, int d) > > It's not as if the ISA has a store-multiple-register instruction that requires > even register numbers...
We will reconsider only aligning arguments in the varargs case. > > > r~