Message ID | 20190919154036.23245-1-mark.corbin@embecosm.com |
---|---|
State | Accepted |
Headers | show |
Series | [1/1] arch/riscv: set the default float ABI based on ISA extensions | expand |
Hello Mark, On Thu, 19 Sep 2019 16:40:35 +0100 Mark Corbin <mark.corbin@embecosm.com> wrote: > This patch sets the default floating point ABI based on the ISA > extensions that have been selected rather than defaulting to soft > float. > > For 64-bit: > > ISA 'D' selects lp64d > ISA 'F' selects lp64f > Otherwise select lp64 > > For 32-bit: > > ISA 'D' selects ilp32d > ISA 'F' selects ilp32f > Otherwise select ilp32 > > This change was proposed by Palmer Dabbelt at SiFive. > > Signed-off-by: Mark Corbin <mark.corbin@embecosm.com> > Reviewed-by: Palmer Dabbelt <palmer@sifive.com> > --- > arch/Config.in.riscv | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) Applied to master, thanks. However, I'm wondering: does it really makes sense to offer a choice of the ABI ? Would there be a reason for a user to use lp64 if he has the D ISA for example ? It would seem logical to simply use lp64d as soon as you have the D ISA. Best regards, Thomas
diff --git a/arch/Config.in.riscv b/arch/Config.in.riscv index bdd2672602..1fc20e5de7 100644 --- a/arch/Config.in.riscv +++ b/arch/Config.in.riscv @@ -80,8 +80,12 @@ endchoice choice prompt "Target ABI" - default BR2_RISCV_ABI_ILP32 if !BR2_ARCH_IS_64 - default BR2_RISCV_ABI_LP64 if BR2_ARCH_IS_64 + default BR2_RISCV_ABI_ILP32D if !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD + default BR2_RISCV_ABI_ILP32F if !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF + default BR2_RISCV_ABI_ILP32 if !BR2_ARCH_IS_64 + default BR2_RISCV_ABI_LP64D if BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD + default BR2_RISCV_ABI_LP64F if BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF + default BR2_RISCV_ABI_LP64 if BR2_ARCH_IS_64 config BR2_RISCV_ABI_ILP32 bool "ilp32"