mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
ARM: 9438/1: assembler: Drop obsolete VFP accessor fallback
Now that the minimum supported binutils version is 2.25, we no longer need a workaround for binutils older than 2.24 for accessing VFP control registers from assembler. Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
386f2d9d57
commit
50867db066
5 changed files with 0 additions and 51 deletions
|
@ -1751,5 +1751,3 @@ config ARCH_HIBERNATION_POSSIBLE
|
|||
default y if ARCH_SUSPEND_POSSIBLE
|
||||
|
||||
endmenu
|
||||
|
||||
source "arch/arm/Kconfig.assembler"
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
config AS_VFP_VMRS_FPINST
|
||||
def_bool $(as-instr,.fpu vfpv2\nvmrs r0$(comma)FPINST)
|
||||
help
|
||||
Supported by binutils >= 2.24 and LLVM integrated assembler.
|
|
@ -9,16 +9,6 @@
|
|||
#ifndef __ASM_VFP_H
|
||||
#define __ASM_VFP_H
|
||||
|
||||
#ifndef CONFIG_AS_VFP_VMRS_FPINST
|
||||
#define FPSID cr0
|
||||
#define FPSCR cr1
|
||||
#define MVFR1 cr6
|
||||
#define MVFR0 cr7
|
||||
#define FPEXC cr8
|
||||
#define FPINST cr9
|
||||
#define FPINST2 cr10
|
||||
#endif
|
||||
|
||||
/* FPSID bits */
|
||||
#define FPSID_IMPLEMENTER_BIT (24)
|
||||
#define FPSID_IMPLEMENTER_MASK (0xff << FPSID_IMPLEMENTER_BIT)
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
#include <asm/vfp.h>
|
||||
|
||||
#ifdef CONFIG_AS_VFP_VMRS_FPINST
|
||||
.macro VFPFMRX, rd, sysreg, cond
|
||||
vmrs\cond \rd, \sysreg
|
||||
.endm
|
||||
|
@ -16,16 +15,6 @@
|
|||
.macro VFPFMXR, sysreg, rd, cond
|
||||
vmsr\cond \sysreg, \rd
|
||||
.endm
|
||||
#else
|
||||
@ Macros to allow building with old toolkits (with no VFP support)
|
||||
.macro VFPFMRX, rd, sysreg, cond
|
||||
MRC\cond p10, 7, \rd, \sysreg, cr0, 0 @ FMRX \rd, \sysreg
|
||||
.endm
|
||||
|
||||
.macro VFPFMXR, sysreg, rd, cond
|
||||
MCR\cond p10, 7, \rd, \sysreg, cr0, 0 @ FMXR \sysreg, \rd
|
||||
.endm
|
||||
#endif
|
||||
|
||||
@ read all the working registers back into the VFP
|
||||
.macro VFPFLDMIA, base, tmp
|
||||
|
|
|
@ -62,8 +62,6 @@
|
|||
#define FPSCR_C (1 << 29)
|
||||
#define FPSCR_V (1 << 28)
|
||||
|
||||
#ifdef CONFIG_AS_VFP_VMRS_FPINST
|
||||
|
||||
#define fmrx(_vfp_) ({ \
|
||||
u32 __v; \
|
||||
asm volatile (".fpu vfpv2\n" \
|
||||
|
@ -78,26 +76,6 @@
|
|||
: : "r" (_var_) : "cc"); \
|
||||
})
|
||||
|
||||
#else
|
||||
|
||||
#define vfpreg(_vfp_) #_vfp_
|
||||
|
||||
#define fmrx(_vfp_) ({ \
|
||||
u32 __v; \
|
||||
asm volatile ("mrc p10, 7, %0, " vfpreg(_vfp_) "," \
|
||||
"cr0, 0 @ fmrx %0, " #_vfp_ \
|
||||
: "=r" (__v) : : "cc"); \
|
||||
__v; \
|
||||
})
|
||||
|
||||
#define fmxr(_vfp_, _var_) ({ \
|
||||
asm volatile ("mcr p10, 7, %0, " vfpreg(_vfp_) "," \
|
||||
"cr0, 0 @ fmxr " #_vfp_ ", %0" \
|
||||
: : "r" (_var_) : "cc"); \
|
||||
})
|
||||
|
||||
#endif
|
||||
|
||||
u32 vfp_single_cpdo(u32 inst, u32 fpscr);
|
||||
u32 vfp_single_cprt(u32 inst, u32 fpscr, struct pt_regs *regs);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue