OSDN Git Service

MIPS: Fix branch emulation for BLTC and BGEC instructions
authorMarkos Chandras <markos.chandras@imgtec.com>
Wed, 24 Jun 2015 08:52:00 +0000 (09:52 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Thu, 9 Jul 2015 09:10:40 +0000 (11:10 +0200)
commite9d92d223381f1f3be5d87322b576721d3b93612
tree88be5c061e84c8f00c0ccf3319f25f5c4fda3584
parent761b4493bbb7b614387794f39e3969716e9e0215
MIPS: Fix branch emulation for BLTC and BGEC instructions

Commits f1b44067c19258b7614e3cd09dfe8d8e12ff5895 ("MIPS: Emulate the
new MIPS R6 B{L,G}T{Z,}{AL,}C instructions") and commit
a8ff66f52d3f17b5ae793955270675c197f73d6c ("MIPS: Emulate the new MIPS
R6 B{L,G}E{Z,}{AL,}C instructions") added support for emulating various
branch compact instructions. However, it missed the case for those which
use the old BLEZL and BGTZL opcodes leading to random crashes when the R6
emulator is disabled. We fix this by ensuring that the 'rt' field is not
zero which is always true for these branch compact instructions.

Fixes: f1b44067c192 ("MIPS: Emulate the new MIPS R6 B{L,G}T{Z,}{AL,}C instructions")
Fixes: a8ff66f52d3f ("MIPS: Emulate the new MIPS R6 B{L,G}E{Z,}{AL,}C instructions")
Cc: <stable@vger.kernel.org> # 4.0+
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: Markos Chandras <markos.chandras@imgtec.com>
Patchwork: https://patchwork.linux-mips.org/patch/10582/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/branch.c
arch/mips/math-emu/cp1emu.c