On Fri, 3 May 2019, Maciej W. Rozycki wrote: > > Technically it is an architecture issue not an ABI issue. If you > > compile for -march=rv32imac -mabi=ilp32 then you can't use FP > > instructions. If you compile for -march=rv32imafc -mabi=ilp32 then > > you can use FP instructions, but we don't use FP regs for argument > > passing. This is similar to the distinction that ARM makes between > > the soft and softfp ABIs. The RISC-V newlib port for instance checks > > __riscv_flen to decide whether to use FP instructions. The predefined > > macro __riscv_flen is set to 0 if the target architecture doesn't have > > FP registers. So the choice of using FP instructions depends on the > > target architecture, not the target ABI. > > I found this a useful clarification, thank you! I wasn't aware of the > `-march=rv32imafc -mabi=ilp32' hybrid mode.
Hmm, I've been thinking a little bit about this hybrid mode and I have one question: how do we pass the IEEE rounding mode setting between `fcsr' and softfp where we have `-march=rv32imafc -mabi=ilp32' and `-march=rv32imac -mabi=ilp32' object modules interlinked? Maciej