cp1emu.c (7cbe010a5ea728d7c4440b11a1a3997faca0e46d) | cp1emu.c (842dfc11ea9a21f9825167c8a4f2834b205b0a79) |
---|---|
1/* 2 * cp1emu.c: a MIPS coprocessor 1 (FPU) instruction emulator 3 * 4 * MIPS floating point support 5 * Copyright (C) 1994-2000 Algorithmics Ltd. 6 * 7 * Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com 8 * Copyright (C) 2000 MIPS Technologies, Inc. --- 570 unchanged lines hidden (view full) --- 579#endif 580 case cop0_op: 581 case cop1_op: 582 case cop2_op: 583 case cop1x_op: 584 if (insn.i_format.rs == bc_op) { 585 preempt_disable(); 586 if (is_fpu_owner()) | 1/* 2 * cp1emu.c: a MIPS coprocessor 1 (FPU) instruction emulator 3 * 4 * MIPS floating point support 5 * Copyright (C) 1994-2000 Algorithmics Ltd. 6 * 7 * Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com 8 * Copyright (C) 2000 MIPS Technologies, Inc. --- 570 unchanged lines hidden (view full) --- 579#endif 580 case cop0_op: 581 case cop1_op: 582 case cop2_op: 583 case cop1x_op: 584 if (insn.i_format.rs == bc_op) { 585 preempt_disable(); 586 if (is_fpu_owner()) |
587 asm volatile( 588 ".set push\n" 589 "\t.set mips1\n" 590 "\tcfc1\t%0,$31\n" 591 "\t.set pop" : "=r" (fcr31)); | 587 fcr31 = read_32bit_cp1_register(CP1_STATUS); |
592 else 593 fcr31 = current->thread.fpu.fcr31; 594 preempt_enable(); 595 596 bit = (insn.i_format.rt >> 2); 597 bit += (bit != 0); 598 bit += 23; 599 switch (insn.i_format.rt & 3) { --- 1359 unchanged lines hidden --- | 588 else 589 fcr31 = current->thread.fpu.fcr31; 590 preempt_enable(); 591 592 bit = (insn.i_format.rt >> 2); 593 bit += (bit != 0); 594 bit += 23; 595 switch (insn.i_format.rt & 3) { --- 1359 unchanged lines hidden --- |