traps.c (cc97ab235f3fe32401ca198cebe6f42642e95770) traps.c (1975ed43ce67542befed188f6aed6a82cfaffd0b)
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1994 - 1999, 2000, 01, 06 Ralf Baechle
7 * Copyright (C) 1995, 1996 Paul M. Antoine
8 * Copyright (C) 1998 Ulf Carlsson

--- 780 unchanged lines hidden (view full) ---

789
790 /*
791 * do_ri skipped over the instruction via compute_return_epc, undo
792 * that for the FPU emulator.
793 */
794 regs->cp0_epc = old_epc;
795 regs->regs[31] = old_ra;
796
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1994 - 1999, 2000, 01, 06 Ralf Baechle
7 * Copyright (C) 1995, 1996 Paul M. Antoine
8 * Copyright (C) 1998 Ulf Carlsson

--- 780 unchanged lines hidden (view full) ---

789
790 /*
791 * do_ri skipped over the instruction via compute_return_epc, undo
792 * that for the FPU emulator.
793 */
794 regs->cp0_epc = old_epc;
795 regs->regs[31] = old_ra;
796
797 /* Save the FP context to struct thread_struct */
798 lose_fpu(1);
799
800 /* Run the emulator */
801 sig = fpu_emulator_cop1Handler(regs, &current->thread.fpu, 1,
802 &fault_addr);
803
804 /*
805 * We can't allow the emulated instruction to leave any
806 * enabled Cause bits set in $fcr31.
807 */

--- 35 unchanged lines hidden (view full) ---

843 * software emulator on-board, let's use it...
844 *
845 * Force FPU to dump state into task/thread context. We're
846 * moving a lot of data here for what is probably a single
847 * instruction, but the alternative is to pre-decode the FP
848 * register operands before invoking the emulator, which seems
849 * a bit extreme for what should be an infrequent event.
850 */
797 /* Run the emulator */
798 sig = fpu_emulator_cop1Handler(regs, &current->thread.fpu, 1,
799 &fault_addr);
800
801 /*
802 * We can't allow the emulated instruction to leave any
803 * enabled Cause bits set in $fcr31.
804 */

--- 35 unchanged lines hidden (view full) ---

840 * software emulator on-board, let's use it...
841 *
842 * Force FPU to dump state into task/thread context. We're
843 * moving a lot of data here for what is probably a single
844 * instruction, but the alternative is to pre-decode the FP
845 * register operands before invoking the emulator, which seems
846 * a bit extreme for what should be an infrequent event.
847 */
851 /* Ensure 'resume' not overwrite saved fp context again. */
852 lose_fpu(1);
853
854 /* Run the emulator */
855 sig = fpu_emulator_cop1Handler(regs, &current->thread.fpu, 1,
856 &fault_addr);
857
858 /*
859 * We can't allow the emulated instruction to leave any
860 * enabled Cause bits set in $fcr31.

--- 1602 unchanged lines hidden ---
848
849 /* Run the emulator */
850 sig = fpu_emulator_cop1Handler(regs, &current->thread.fpu, 1,
851 &fault_addr);
852
853 /*
854 * We can't allow the emulated instruction to leave any
855 * enabled Cause bits set in $fcr31.

--- 1602 unchanged lines hidden ---