This series fixes up some issues with FPU emulation, ranging from missing instructions to outright backwards branches to a non-zero zero register. Some cleanups are made along the way, reducing unnecessary duplication of code. There are still issues around the R6 maddf & msubf instructions, which currently appear to have been formed by duplicating the existing multiply & addition code then gluing it together & thus don't implement true fused multiply-addition, but those fixes need more testing so will come later. This series applies atop v4.6-rc4. Paul Burton (11): MIPS: math-emu: Fix BC1{EQ,NE}Z emulation MIPS: Fix BC1{EQ,NE}Z return offset calculation MIPS: inst: Declare fsel_op for sel.fmt instruction MIPS: math-emu: Emulate MIPSr6 sel.fmt instruction MIPS: math-emu: Unify ieee754sp_m{add,sub}f MIPS: math-emu: Unify ieee754dp_m{add,sub}f MIPS: math-emu: Add z argument macros MIPS: math-emu: Fix bit-width in ieee754dp_{mul,maddf,msubf} comments MIPS: math-emu: Fix code indentation MIPS: math-emu: Fix m{add,sub}.s shifts MIPS: math-emu: Fix jalr emulation when rd == $0 arch/mips/include/uapi/asm/inst.h | 1 + arch/mips/kernel/branch.c | 18 +-- arch/mips/math-emu/Makefile | 4 +- arch/mips/math-emu/cp1emu.c | 45 +++++-- arch/mips/math-emu/dp_maddf.c | 35 +++-- arch/mips/math-emu/dp_msubf.c | 269 -------------------------------------- arch/mips/math-emu/dp_mul.c | 4 +- arch/mips/math-emu/ieee754dp.h | 1 + arch/mips/math-emu/ieee754int.h | 10 ++ arch/mips/math-emu/ieee754sp.c | 3 +- arch/mips/math-emu/ieee754sp.h | 17 ++- arch/mips/math-emu/sp_add.c | 6 +- arch/mips/math-emu/sp_maddf.c | 43 ++++-- arch/mips/math-emu/sp_msubf.c | 258 ------------------------------------ arch/mips/math-emu/sp_sub.c | 6 +- 15 files changed, 130 insertions(+), 590 deletions(-) delete mode 100644 arch/mips/math-emu/dp_msubf.c delete mode 100644 arch/mips/math-emu/sp_msubf.c -- 2.8.0