Quake II RTX doxygen  1.0 dev
fpu.c
Go to the documentation of this file.
1 /*
2 Copyright (C) 2011 Andrey Nazarov
3 
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8 
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13 
14 You should have received a copy of the GNU General Public License along
15 with this program; if not, write to the Free Software Foundation, Inc.,
16 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 */
18 
19 #include "shared/shared.h"
20 #include "common/x86/fpu.h"
21 
22 #if (defined __i386__) || (defined _M_IX86)
23 
24 uint16_t pushed_cw, single_cw, full_cw, chop_cw, ceil_cw;
25 
26 void X86_SetFPCW(void)
27 {
28  uint16_t cw;
29 
30  // save the control word into pushed_cw
31  X86_PUSH_FPCW;
32 
33  // mask off RC and PC bits
34  cw = pushed_cw & 0xf0ff;
35 
36  single_cw = cw; // round mode, 24-bit precision
37  full_cw = cw | 0x300; // round mode, 64-bit precision
38  chop_cw = cw | 0xc00; // chop mode, 24-bit precision
39  ceil_cw = cw | 0x800; // ceil mode, 24-bit precision
40 }
41 
42 #endif
43