linux/arch
James Hogan c7fd89a640 MIPS: Fix odd fp register warnings with MIPS64r2
Building 32-bit MIPS64r2 kernels produces warnings like the following
on certain toolchains (such as GNU assembler 2.24.90, but not GNU
assembler 2.28.51) since commit 22b8ba765a ("MIPS: Fix MIPS64 FP
save/restore on 32-bit kernels"), due to the exposure of fpu_save_16odd
from fpu_save_double and fpu_restore_16odd from fpu_restore_double:

arch/mips/kernel/r4k_fpu.S:47: Warning: float register should be even, was 1
...
arch/mips/kernel/r4k_fpu.S:59: Warning: float register should be even, was 1
...

This appears to be because .set mips64r2 does not change the FPU ABI to
64-bit when -march=mips64r2 (or e.g. -march=xlp) is provided on the
command line on that toolchain, from the default FPU ABI of 32-bit due
to the -mabi=32. This makes access to the odd FPU registers invalid.

Fix by explicitly changing the FPU ABI with .set fp=64 directives in
fpu_save_16odd and fpu_restore_16odd, and moving the undefine of fp up
in asmmacro.h so fp doesn't turn into $30.

Fixes: 22b8ba765a ("MIPS: Fix MIPS64 FP save/restore on 32-bit kernels")
Signed-off-by: James Hogan <jhogan@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: <stable@vger.kernel.org> # 4.0+: 22b8ba765a72: MIPS: Fix MIPS64 FP save/restore on 32-bit kernels
Cc: <stable@vger.kernel.org> # 4.0+
Patchwork: https://patchwork.linux-mips.org/patch/17656/
2017-11-10 20:58:56 +00:00
..
alpha alpha: fix build failures 2017-10-03 17:54:23 -07:00
arc ARC: [plat-hsdk]: Add reset controller node to manage ethernet reset 2017-10-06 08:59:54 -07:00
arm STM32 fixes for v4.14: 2017-10-04 10:31:00 -07:00
arm64 arm64 fixes: 2017-10-06 11:31:46 -07:00
blackfin Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2017-09-11 18:34:47 -07:00
c6x arch: remove unused *_segments() macros/functions 2017-09-22 12:59:52 -10:00
cris MTD changes for 4.14: 2017-09-09 14:48:21 -07:00
frv arch: remove unused *_segments() macros/functions 2017-09-22 12:59:52 -10:00
h8300 arch: define CPU_BIG_ENDIAN for all fixed big endian archs 2017-09-08 18:26:48 -07:00
hexagon Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-09-04 11:52:29 -07:00
ia64 Merge branch 'work.ipc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-09-14 17:37:26 -07:00
m32r m32r: fix build failure 2017-10-03 17:54:26 -07:00
m68k Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu 2017-09-10 21:07:39 -07:00
metag arch: remove unused *_segments() macros/functions 2017-09-22 12:59:52 -10:00
microblaze arch: change default endian for microblaze 2017-09-25 15:31:26 +02:00
mips MIPS: Fix odd fp register warnings with MIPS64r2 2017-11-10 20:58:56 +00:00
mn10300 arch: remove unused *_segments() macros/functions 2017-09-22 12:59:52 -10:00
nios2 nios2 update for v4.14-rc1 2017-09-15 12:47:21 -07:00
openrisc OpenRISC patches for 4.14 2017-09-13 11:52:18 -07:00
parisc Merge branch 'core-watchdog-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-10-06 08:36:41 -07:00
powerpc KVM fixes for v4.14-rc4 2017-10-06 11:28:34 -07:00
s390 s390/topology: enable / disable topology dynamically 2017-09-20 13:47:55 +02:00
score
sh sh: sh7269: remove nonexistent GPIO_PH[0-7] to fix pinctrl registration 2017-10-03 17:54:24 -07:00
sparc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2017-09-11 18:34:47 -07:00
tile Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2017-09-22 13:02:54 -10:00
um um/time: Fixup namespace collision 2017-09-29 10:07:44 +02:00
unicore32 unicore32/PCI: Replace pci_fixup_irqs() call with host bridge IRQ mapping hooks 2017-08-03 16:29:34 -05:00
x86 KVM fixes for v4.14-rc4 2017-10-06 11:28:34 -07:00
xtensa arch: remove unused *_segments() macros/functions 2017-09-22 12:59:52 -10:00
.gitignore
Kconfig - For the randstruct plugin, enable automatic randomization of structures 2017-09-07 20:30:19 -07:00