xcp 52 arch/mips/include/asm/dsemul.h extern bool do_dsemulret(struct pt_regs *xcp); xcp 54 arch/mips/include/asm/dsemul.h static inline bool do_dsemulret(struct pt_regs *xcp) xcp 168 arch/mips/include/asm/fpu_emulator.h extern int fpu_emulator_cop1Handler(struct pt_regs *xcp, xcp 782 arch/mips/math-emu/cp1emu.c static inline int cop1_64bit(struct pt_regs *xcp) xcp 800 arch/mips/math-emu/cp1emu.c if (cop1_64bit(xcp) && !hybrid_fprs()) \ xcp 808 arch/mips/math-emu/cp1emu.c if (cop1_64bit(xcp) && !hybrid_fprs()) { \ xcp 829 arch/mips/math-emu/cp1emu.c ((di) = get_fpr64(&ctx->fpr[(x) & ~(cop1_64bit(xcp) ^ 1)], 0)) xcp 834 arch/mips/math-emu/cp1emu.c fpr = (x) & ~(cop1_64bit(xcp) ^ 1); \ xcp 848 arch/mips/math-emu/cp1emu.c static inline void cop1_cfc(struct pt_regs *xcp, struct mips_fpu_struct *ctx, xcp 858 arch/mips/math-emu/cp1emu.c (void *)xcp->cp0_epc, MIPSInst_RT(ir), value); xcp 868 arch/mips/math-emu/cp1emu.c (void *)xcp->cp0_epc, MIPSInst_RT(ir), value); xcp 876 arch/mips/math-emu/cp1emu.c (void *)xcp->cp0_epc, MIPSInst_RT(ir), value); xcp 887 arch/mips/math-emu/cp1emu.c (void *)xcp->cp0_epc, MIPSInst_RT(ir), value); xcp 899 arch/mips/math-emu/cp1emu.c xcp->regs[MIPSInst_RT(ir)] = value; xcp 905 arch/mips/math-emu/cp1emu.c static inline void cop1_ctc(struct pt_regs *xcp, struct mips_fpu_struct *ctx, xcp 915 arch/mips/math-emu/cp1emu.c value = xcp->regs[MIPSInst_RT(ir)]; xcp 920 arch/mips/math-emu/cp1emu.c (void *)xcp->cp0_epc, MIPSInst_RT(ir), value); xcp 931 arch/mips/math-emu/cp1emu.c (void *)xcp->cp0_epc, MIPSInst_RT(ir), value); xcp 942 arch/mips/math-emu/cp1emu.c (void *)xcp->cp0_epc, MIPSInst_RT(ir), value); xcp 951 arch/mips/math-emu/cp1emu.c (void *)xcp->cp0_epc, MIPSInst_RT(ir), value); xcp 971 arch/mips/math-emu/cp1emu.c static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx, xcp 974 arch/mips/math-emu/cp1emu.c unsigned long contpc = xcp->cp0_epc + dec_insn.pc_inc; xcp 993 arch/mips/math-emu/cp1emu.c if (delay_slot(xcp)) { xcp 995 arch/mips/math-emu/cp1emu.c if (!mm_isBranchInstr(xcp, dec_insn, &contpc)) xcp 996 arch/mips/math-emu/cp1emu.c clear_delay_slot(xcp); xcp 998 arch/mips/math-emu/cp1emu.c if (!isBranchInstr(xcp, dec_insn, &contpc)) xcp 999 arch/mips/math-emu/cp1emu.c clear_delay_slot(xcp); xcp 1003 arch/mips/math-emu/cp1emu.c if (delay_slot(xcp)) { xcp 1046 arch/mips/math-emu/cp1emu.c perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, xcp, 0); xcp 1050 arch/mips/math-emu/cp1emu.c dva = (u64 __user *) (xcp->regs[MIPSInst_RS(ir)] + xcp 1068 arch/mips/math-emu/cp1emu.c dva = (u64 __user *) (xcp->regs[MIPSInst_RS(ir)] + xcp 1085 arch/mips/math-emu/cp1emu.c wva = (u32 __user *) (xcp->regs[MIPSInst_RS(ir)] + xcp 1102 arch/mips/math-emu/cp1emu.c wva = (u32 __user *) (xcp->regs[MIPSInst_RS(ir)] + xcp 1126 arch/mips/math-emu/cp1emu.c DIFROMREG(xcp->regs[MIPSInst_RT(ir)], xcp 1136 arch/mips/math-emu/cp1emu.c DITOREG(xcp->regs[MIPSInst_RT(ir)], MIPSInst_RD(ir)); xcp 1145 arch/mips/math-emu/cp1emu.c SIFROMHREG(xcp->regs[MIPSInst_RT(ir)], xcp 1155 arch/mips/math-emu/cp1emu.c SITOHREG(xcp->regs[MIPSInst_RT(ir)], MIPSInst_RD(ir)); xcp 1161 arch/mips/math-emu/cp1emu.c SIFROMREG(xcp->regs[MIPSInst_RT(ir)], xcp 1168 arch/mips/math-emu/cp1emu.c SITOREG(xcp->regs[MIPSInst_RT(ir)], MIPSInst_RD(ir)); xcp 1173 arch/mips/math-emu/cp1emu.c cop1_cfc(xcp, ctx, ir); xcp 1178 arch/mips/math-emu/cp1emu.c cop1_ctc(xcp, ctx, ir); xcp 1186 arch/mips/math-emu/cp1emu.c if (!cpu_has_mips_r6 || delay_slot(xcp)) xcp 1206 arch/mips/math-emu/cp1emu.c if (delay_slot(xcp)) xcp 1233 arch/mips/math-emu/cp1emu.c set_delay_slot(xcp); xcp 1245 arch/mips/math-emu/cp1emu.c bcpc = xcp->cp0_epc; xcp 1246 arch/mips/math-emu/cp1emu.c xcp->cp0_epc += dec_insn.pc_inc; xcp 1251 arch/mips/math-emu/cp1emu.c contpc = (xcp->cp0_epc + (contpc << 1)); xcp 1271 arch/mips/math-emu/cp1emu.c sig = mips_dsemul(xcp, ir, xcp 1276 arch/mips/math-emu/cp1emu.c xcp->cp0_epc = bcpc; xcp 1284 arch/mips/math-emu/cp1emu.c contpc = (xcp->cp0_epc + (contpc << 2)); xcp 1319 arch/mips/math-emu/cp1emu.c xcp->cp0_epc = bcpc; xcp 1327 arch/mips/math-emu/cp1emu.c sig = mips_dsemul(xcp, ir, bcpc, contpc); xcp 1331 arch/mips/math-emu/cp1emu.c xcp->cp0_epc = bcpc; xcp 1339 arch/mips/math-emu/cp1emu.c xcp->cp0_epc += dec_insn.pc_inc; xcp 1353 arch/mips/math-emu/cp1emu.c sig = fpu_emu(xcp, ctx, ir); xcp 1363 arch/mips/math-emu/cp1emu.c sig = fpux_emu(xcp, ctx, ir, fault_addr); xcp 1376 arch/mips/math-emu/cp1emu.c xcp->regs[MIPSInst_RD(ir)] = xcp 1377 arch/mips/math-emu/cp1emu.c xcp->regs[MIPSInst_RS(ir)]; xcp 1384 arch/mips/math-emu/cp1emu.c xcp->cp0_epc = contpc; xcp 1385 arch/mips/math-emu/cp1emu.c clear_delay_slot(xcp); xcp 1463 arch/mips/math-emu/cp1emu.c static int fpux_emu(struct pt_regs *xcp, struct mips_fpu_struct *ctx, xcp 1480 arch/mips/math-emu/cp1emu.c va = (void __user *) (xcp->regs[MIPSInst_FR(ir)] + xcp 1481 arch/mips/math-emu/cp1emu.c xcp->regs[MIPSInst_FT(ir)]); xcp 1498 arch/mips/math-emu/cp1emu.c va = (void __user *) (xcp->regs[MIPSInst_FR(ir)] + xcp 1499 arch/mips/math-emu/cp1emu.c xcp->regs[MIPSInst_FT(ir)]); xcp 1577 arch/mips/math-emu/cp1emu.c va = (void __user *) (xcp->regs[MIPSInst_FR(ir)] + xcp 1578 arch/mips/math-emu/cp1emu.c xcp->regs[MIPSInst_FT(ir)]); xcp 1595 arch/mips/math-emu/cp1emu.c va = (void __user *) (xcp->regs[MIPSInst_FR(ir)] + xcp 1596 arch/mips/math-emu/cp1emu.c xcp->regs[MIPSInst_FT(ir)]); xcp 1658 arch/mips/math-emu/cp1emu.c static int fpu_emu(struct pt_regs *xcp, struct mips_fpu_struct *ctx, xcp 1747 arch/mips/math-emu/cp1emu.c if (xcp->regs[MIPSInst_FT(ir)] != 0) xcp 1756 arch/mips/math-emu/cp1emu.c if (xcp->regs[MIPSInst_FT(ir)] == 0) xcp 2119 arch/mips/math-emu/cp1emu.c if (xcp->regs[MIPSInst_FT(ir)] != 0) xcp 2127 arch/mips/math-emu/cp1emu.c if (xcp->regs[MIPSInst_FT(ir)] == 0) xcp 2813 arch/mips/math-emu/cp1emu.c int fpu_emulator_cop1Handler(struct pt_regs *xcp, struct mips_fpu_struct *ctx, xcp 2829 arch/mips/math-emu/cp1emu.c oldepc = xcp->cp0_epc; xcp 2831 arch/mips/math-emu/cp1emu.c prevepc = xcp->cp0_epc; xcp 2838 arch/mips/math-emu/cp1emu.c if ((get_user(instr[0], (u16 __user *)msk_isa16_mode(xcp->cp0_epc))) || xcp 2839 arch/mips/math-emu/cp1emu.c (get_user(instr[1], (u16 __user *)msk_isa16_mode(xcp->cp0_epc + 2))) || xcp 2840 arch/mips/math-emu/cp1emu.c (get_user(instr[2], (u16 __user *)msk_isa16_mode(xcp->cp0_epc + 4))) || xcp 2841 arch/mips/math-emu/cp1emu.c (get_user(instr[3], (u16 __user *)msk_isa16_mode(xcp->cp0_epc + 6)))) { xcp 2878 arch/mips/math-emu/cp1emu.c (mips_instruction __user *) xcp->cp0_epc)) || xcp 2880 arch/mips/math-emu/cp1emu.c (mips_instruction __user *)(xcp->cp0_epc+4)))) { xcp 2892 arch/mips/math-emu/cp1emu.c xcp->cp0_epc += dec_insn.pc_inc; /* Skip NOPs */ xcp 2898 arch/mips/math-emu/cp1emu.c sig = cop1Emulate(xcp, ctx, dec_insn, fault_addr); xcp 2912 arch/mips/math-emu/cp1emu.c if ((xcp->cp0_epc ^ prevepc) & 0x1) xcp 2916 arch/mips/math-emu/cp1emu.c } while (xcp->cp0_epc > prevepc); xcp 2919 arch/mips/math-emu/cp1emu.c if (sig == SIGILL && xcp->cp0_epc != oldepc) xcp 295 arch/mips/math-emu/dsemul.c bool do_dsemulret(struct pt_regs *xcp) xcp 304 arch/mips/math-emu/dsemul.c xcp->cp0_epc = current->thread.bd_emu_cont_pc; xcp 305 arch/mips/math-emu/dsemul.c pr_debug("dsemulret to 0x%08lx\n", xcp->cp0_epc);