Hello. On 04/04/2015 01:25 AM, Maciej W. Rozycki wrote:
Move CFC1/CTC1 emulation code to separate functions to avoid excessive indentation in forthcoming changes. Adjust formatting in a minor way and remove extraneous round brackets.
Signed-off-by: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx> --- linux-mips-emu-cxc.diff Index: linux/arch/mips/math-emu/cp1emu.c =================================================================== --- linux.orig/arch/mips/math-emu/cp1emu.c 2015-04-02 20:27:54.099185000 +0100 +++ linux/arch/mips/math-emu/cp1emu.c 2015-04-02 20:27:54.459192000 +0100 @@ -840,6 +840,52 @@ do { \ #define DPTOREG(dp, x) DITOREG((dp).bits, x) /* + * Emulate a CFC1 instruction. + */ +static inline void cop1_cfc(struct pt_regs *xcp, struct mips_fpu_struct *ctx, + mips_instruction ir) +{ + u32 value; + + if (MIPSInst_RD(ir) == FPCREG_CSR) { + value = ctx->fcr31; + pr_debug("%p gpr[%d]<-csr=%08x\n", + (void *)xcp->cp0_epc, + MIPSInst_RT(ir), value); + } else if (MIPSInst_RD(ir) == FPCREG_RID) + value = 0; + else + value = 0;
CodingStyle: all arms of the *if* statement shouyld have {} if at leats one has them.
+ if (MIPSInst_RT(ir)) + xcp->regs[MIPSInst_RT(ir)] = value; +} + +/* + * Emulate a CTC1 instruction. + */ +static inline void cop1_ctc(struct pt_regs *xcp, struct mips_fpu_struct *ctx, + mips_instruction ir) +{ + u32 value; + + if (MIPSInst_RT(ir) == 0) + value = 0; + else + value = xcp->regs[MIPSInst_RT(ir)]; + + /* we only have one writable control reg + */
This comment would fit on a single line. [...] WBR, Sergei