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

Reply via email to