[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <cover.1587299429.git.stefan@agner.ch>
Date: Sun, 19 Apr 2020 14:35:48 +0200
From: Stefan Agner <stefan@...er.ch>
To: linux@...linux.org.uk
Cc: arnd@...db.de, ard.biesheuvel@...aro.org, robin.murphy@....com,
yamada.masahiro@...ionext.com, ndesaulniers@...gle.com,
manojgupta@...gle.com, jiancai@...gle.com,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
clang-built-linux@...glegroups.com, Stefan Agner <stefan@...er.ch>
Subject: [PATCH v2 0/3] ARM: make use of UAL VFP mnemonics when possible
To build the kernel with Clang's integrated assembler the VFP code needs
to make use of the unified assembler language (UAL) VFP mnemonics.
At first I tried to get rid of the co-processor instructions to access
the floating point unit along with the macros completely. However, due
to missing FPINST/FPINST2 argument support in older binutils versions we
have to keep them around. Once we drop support for binutils 2.24 and
older, the move to UAL VFP mnemonics will be straight forward with this
changes applied.
Tested using Clang with integrated assembler as well as external
(binutils assembler), various gcc/binutils version down to 4.7/2.23.
Disassembled and compared the object files in arch/arm/vfp/ to make
sure this changes leads to the same code. Besides different inlining
behavior I was not able to spot a difference.
In v2 the check for FPINST argument support is now made in Kconfig.
--
Stefan
Stefan Agner (3):
ARM: use .fpu assembler directives instead of assembler arguments
ARM: use VFP assembler mnemonics in register load/store macros
ARM: use VFP assembler mnemonics if available
arch/arm/Kconfig | 2 ++
arch/arm/Kconfig.assembler | 6 ++++++
arch/arm/include/asm/vfp.h | 2 ++
arch/arm/include/asm/vfpmacros.h | 31 ++++++++++++++++++++++---------
arch/arm/vfp/Makefile | 2 --
arch/arm/vfp/vfphw.S | 31 ++++++++++++++++++++-----------
arch/arm/vfp/vfpinstr.h | 23 +++++++++++++++++++----
7 files changed, 71 insertions(+), 26 deletions(-)
create mode 100644 arch/arm/Kconfig.assembler
--
2.25.1
Powered by blists - more mailing lists