Move OpenBSD/armv7 to softfp float ABI

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Move OpenBSD/armv7 to softfp float ABI

Mark Kettenis
The diff below moves armv7 to the so-called softfp float ABI.  This is
the same ABI as we have now, except that it allows the compiler to
generate hardware floating-point instructions.  Floating-point
function arguments and return values are still passed in the integer
registers though.

This is unlikely to have any significant performance impact.  Some
code may even run slower since floating-point arguments have to be
moved into floating-point registers before hardware floating-point
instructions can be used.  But it is a useful step towards switching
to the hardfp float ABI.

This probably should wait a little bit until the dust on the clang6
switch has settled.  But don't hesitate to test this or give me ok's.


Index: gnu/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp
===================================================================
RCS file: /cvs/src/gnu/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp,v
retrieving revision 1.1.1.2
diff -u -p -r1.1.1.2 ARM.cpp
--- gnu/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp 6 Apr 2018 14:26:32 -0000 1.1.1.2
+++ gnu/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp 12 Apr 2018 20:56:44 -0000
@@ -232,7 +232,7 @@ arm::FloatABI arm::getARMFloatABI(const
       break;
 
     case llvm::Triple::OpenBSD:
-      ABI = FloatABI::Soft;
+      ABI = FloatABI::SoftFP;
       break;
 
     default: