[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-mips-cvs
Subject:    MIPS: traps: Fix inline asm ctc1 missing .set hardfloat
From:       linux-mips () linux-mips ! org
Date:       2015-01-30 23:38:34
Message-ID: S27012352AbbA3XihafIyU/20150130233837Z+542 () eddie ! linux-mips ! org
[Download RAW message or body]

Author: James Hogan <james.hogan@imgtec.com> Fri Jan 30 15:40:20 2015 +0000
Comitter: Ralf Baechle <ralf@linux-mips.org> Fri Jan 30 23:21:26 2015 +0100
Commit: a31c770bf11f5e693b41eedec7c92ad028595a90
Gitweb: http://git.linux-mips.org/g/ralf/linux/a31c770bf11f
Branch: linux-3.18-stable

Commit 842dfc11ea9a ("MIPS: Fix build with binutils 2.24.51+") in v3.18
enabled -msoft-float and sprinkled ".set hardfloat" where necessary to
use FP instructions. However it missed enable_restore_fp_context() which
since v3.17 does a ctc1 with inline assembly, causing the following
assembler errors on Mentor's 2014.05 toolchain:

{standard input}: Assembler messages:
{standard input}:2913: Error: opcode not supported on this processor: mips32r2 (mips32r2) `ctc1 $2,$31'
scripts/Makefile.build:257: recipe for target 'arch/mips/kernel/traps.o' failed

Fix that to use the new write_32bit_cp1_register() macro so that ".set
hardfloat" is automatically added when -msoft-float is in use.

Fixes 842dfc11ea9a ("MIPS: Fix build with binutils 2.24.51+")
Signed-off-by: James Hogan <james.hogan@imgtec.com>
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> # 3.18+, depends on "MIPS: mipsregs.h: Add write_32bit_cp1_register()"
Patchwork: https://patchwork.linux-mips.org/patch/9173/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

(cherry picked from commit b2518f6b8342a8d814e09f117385f6f3390344e0)

---

 arch/mips/kernel/traps.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic