Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32/src/fpu_context.c

    r45b4300 radd04f7  
    2727 */
    2828
    29 /** @addtogroup ia32
     29/** @addtogroup ia32   
    3030 * @{
    3131 */
     
    3838#include <cpu.h>
    3939
    40 /** x87 FPU scr values (P3+ MMX2) */
    41 enum {
    42         X87_FLUSH_ZERO_FLAG = (1 << 15),
    43         X87_ROUND_CONTROL_MASK = (0x3 << 13),
    44         x87_ROUND_TO_NEAREST_EVEN = (0x0 << 13),
    45         X87_ROUND_DOWN_TO_NEG_INF = (0x1 << 13),
    46         X87_ROUND_UP_TO_POS_INF = (0x2 << 13),
    47         X87_ROUND_TO_ZERO = (0x3 << 13),
    48         X87_PRECISION_MASK = (1 << 12),
    49         X87_UNDERFLOW_MASK = (1 << 11),
    50         X87_OVERFLOW_MASK = (1 << 10),
    51         X87_ZERO_DIV_MASK = (1 << 9),
    52         X87_DENORMAL_OP_MASK = (1 << 8),
    53         X87_INVALID_OP_MASK = (1 << 7),
    54         X87_DENOM_ZERO_FLAG = (1 << 6),
    55         X87_PRECISION_EXC_FLAG = (1 << 5),
    56         X87_UNDERFLOW_EXC_FLAG = (1 << 4),
    57         X87_OVERFLOW_EXC_FLAG = (1 << 3),
    58         X87_ZERO_DIV_EXC_FLAG = (1 << 2),
    59         X87_DENORMAL_EXC_FLAG = (1 << 1),
    60         X87_INVALID_OP_EXC_FLAG = (1 << 0),
    61        
    62         X87_ALL_MASK = X87_PRECISION_MASK | X87_UNDERFLOW_MASK | X87_OVERFLOW_MASK | X87_ZERO_DIV_MASK | X87_DENORMAL_OP_MASK | X87_INVALID_OP_MASK,
    63 };
    64 
    6540typedef void (*fpu_context_function)(fpu_context_t *fctx);
    6641
    67 static fpu_context_function fpu_save;
    68 static fpu_context_function fpu_restore;
     42static fpu_context_function fpu_save, fpu_restore;
    6943
    7044static void fpu_context_f_save(fpu_context_t *fctx)
     
    10377void fpu_fxsr(void)
    10478{
    105         fpu_save = fpu_context_fx_save;
    106         fpu_restore = fpu_context_fx_restore;
     79        fpu_save=fpu_context_fx_save;
     80        fpu_restore=fpu_context_fx_restore;
    10781}
    10882
     
    12498}
    12599
    126 /** Initialize x87 FPU. Mask all exceptions. */
    127100void fpu_init()
    128101{
     
    138111                "ldmxcsr %[help0]\n"
    139112                : [help0] "+m" (help0), [help1] "+r" (help1)
    140                 : [magic] "i" (X87_ALL_MASK)
     113                : [magic] "i" (0x1f80)
    141114        );
    142115}
Note: See TracChangeset for help on using the changeset viewer.