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, ¤t->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, ¤t->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, ¤t->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, ¤t->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 --- |