Annotation of hatari/src/cpu/fpp.h, revision 1.1.1.2

1.1       root        1: 
                      2: /* single   : S  8*E 23*F */
                      3: /* double   : S 11*E 52*F */
                      4: /* extended : S 15*E 64*F */
                      5: /* E = 0 & F = 0 -> 0 */
                      6: /* E = MAX & F = 0 -> Infin */
                      7: /* E = MAX & F # 0 -> NotANumber */
                      8: /* E = biased by 127 (single) ,1023 (double) ,16383 (extended) */
                      9: 
                     10: #define FPSR_BSUN       0x00008000
                     11: #define FPSR_SNAN       0x00004000
                     12: #define FPSR_OPERR      0x00002000
                     13: #define FPSR_OVFL       0x00001000
                     14: #define FPSR_UNFL       0x00000800
                     15: #define FPSR_DZ         0x00000400
                     16: #define FPSR_INEX2      0x00000200
                     17: #define FPSR_INEX1      0x00000100
                     18: 
                     19: extern void fp_init_native(void);
1.1.1.2 ! root       20: #ifdef MSVC_LONG_DOUBLE
        !            21: extern void fp_init_native_80(void);
        !            22: #endif
        !            23: extern void fp_init_softfloat(int);
1.1       root       24: extern void fpsr_set_exception(uae_u32 exception);
                     25: extern void fpu_modechange(void);
1.1.1.2 ! root       26: extern void fpu_clearstatus(void);
1.1       root       27: 
1.1.1.2 ! root       28: #ifdef WINUAE_FOR_HATARI
1.1       root       29: extern double softfloat_tan(double v);
1.1.1.2 ! root       30: #endif
1.1       root       31: 
                     32: 
                     33: #if defined(CPU_i386) || defined(CPU_x86_64)
                     34: extern void init_fpucw_x87(void);
1.1.1.2 ! root       35: #ifdef MSVC_LONG_DOUBLE
        !            36: extern void init_fpucw_x87_80(void);
1.1       root       37: #endif
1.1.1.2 ! root       38: #endif
        !            39: 
        !            40: #define PREC_NORMAL 0
        !            41: #define PREC_FLOAT 1
        !            42: #define PREC_DOUBLE 2
        !            43: #define PREC_EXTENDED 3
        !            44: 
        !            45: #define FPU_FEATURE_EXCEPTIONS 1
        !            46: #define FPU_FEATURE_DENORMALS 2
1.1       root       47: 
                     48: typedef void (*FPP_ABQS)(fpdata*, fpdata*, uae_u64*, uae_u8*);
                     49: typedef void (*FPP_AB)(fpdata*, fpdata*);
                     50: typedef void (*FPP_ABP)(fpdata*, fpdata*, int);
                     51: typedef void (*FPP_A)(fpdata*);
                     52: 
                     53: typedef bool (*FPP_IS)(fpdata*);
                     54: typedef void (*FPP_SET_MODE)(uae_u32);
                     55: typedef void (*FPP_GET_STATUS)(uae_u32*);
                     56: typedef void (*FPP_CLEAR_STATUS)(void);
1.1.1.2 ! root       57: typedef uae_u32 (*FPP_SUPPORT_FLAGS)(void);
1.1       root       58: 
                     59: typedef void (*FPP_FROM_NATIVE)(fptype, fpdata*);
                     60: typedef void (*FPP_TO_NATIVE)(fptype*, fpdata*);
                     61: 
                     62: typedef void (*FPP_FROM_INT)(fpdata*,uae_s32);
                     63: typedef uae_s64 (*FPP_TO_INT)(fpdata*, int);
                     64: 
                     65: typedef void (*FPP_TO_SINGLE)(fpdata*, uae_u32);
                     66: typedef uae_u32 (*FPP_FROM_SINGLE)(fpdata*);
                     67: 
                     68: typedef void (*FPP_TO_DOUBLE)(fpdata*, uae_u32, uae_u32);
                     69: typedef void (*FPP_FROM_DOUBLE)(fpdata*, uae_u32*, uae_u32*);
                     70: 
                     71: typedef void (*FPP_TO_EXTEN)(fpdata*, uae_u32, uae_u32, uae_u32);
                     72: typedef void (*FPP_FROM_EXTEN)(fpdata*, uae_u32*, uae_u32*, uae_u32*);
                     73: 
                     74: typedef void (*FPP_PACK)(fpdata*, uae_u32*, int);
                     75: 
                     76: typedef const TCHAR* (*FPP_PRINT)(fpdata*,int);
                     77: typedef uae_u32 (*FPP_GET32)(void);
                     78: 
                     79: typedef void (*FPP_DENORMALIZE)(fpdata*,int);
                     80: 
                     81: extern FPP_PRINT fpp_print;
                     82: 
                     83: extern FPP_IS fpp_unset_snan;
1.1.1.2 ! root       84: extern FPP_IS fpp_is_init;
        !            85: extern FPP_IS fpp_is_snan;
1.1       root       86: extern FPP_IS fpp_is_nan;
                     87: extern FPP_IS fpp_is_infinity;
                     88: extern FPP_IS fpp_is_zero;
                     89: extern FPP_IS fpp_is_neg;
                     90: extern FPP_IS fpp_is_denormal;
                     91: extern FPP_IS fpp_is_unnormal;
1.1.1.2 ! root       92: extern FPP_A fpp_fix_infinity;
1.1       root       93: 
                     94: extern FPP_GET_STATUS fpp_get_status;
                     95: extern FPP_CLEAR_STATUS fpp_clear_status;
                     96: extern FPP_SET_MODE fpp_set_mode;
1.1.1.2 ! root       97: extern FPP_SUPPORT_FLAGS fpp_get_support_flags;
1.1       root       98: 
                     99: extern FPP_TO_INT fpp_to_int;
                    100: extern FPP_FROM_INT fpp_from_int;
                    101: 
                    102: extern FPP_PACK fpp_to_pack;
                    103: extern FPP_PACK fpp_from_pack;
                    104: 
                    105: extern FPP_TO_SINGLE fpp_to_single;
                    106: extern FPP_FROM_SINGLE fpp_from_single;
                    107: extern FPP_TO_DOUBLE fpp_to_double;
                    108: extern FPP_FROM_DOUBLE fpp_from_double;
                    109: extern FPP_TO_EXTEN fpp_to_exten;
                    110: extern FPP_FROM_EXTEN fpp_from_exten;
                    111: extern FPP_TO_EXTEN fpp_to_exten_fmovem;
                    112: extern FPP_FROM_EXTEN fpp_from_exten_fmovem;
                    113: 
                    114: extern FPP_A fpp_round_single;
                    115: extern FPP_A fpp_round_double;
                    116: extern FPP_A fpp_round32;
                    117: extern FPP_A fpp_round64;
                    118: 
                    119: extern FPP_A fpp_normalize;
                    120: extern FPP_DENORMALIZE fpp_denormalize;
                    121: extern FPP_A fpp_get_internal_overflow;
                    122: extern FPP_A fpp_get_internal_underflow;
                    123: extern FPP_A fpp_get_internal_round_all;
                    124: extern FPP_A fpp_get_internal_round;
                    125: extern FPP_A fpp_get_internal_round_exten;
                    126: extern FPP_A fpp_get_internal;
                    127: extern FPP_GET32 fpp_get_internal_grs;
                    128: 
                    129: extern FPP_AB fpp_int;
                    130: extern FPP_AB fpp_sinh;
                    131: extern FPP_AB fpp_intrz;
                    132: extern FPP_ABP fpp_sqrt;
                    133: extern FPP_AB fpp_lognp1;
                    134: extern FPP_AB fpp_etoxm1;
                    135: extern FPP_AB fpp_tanh;
                    136: extern FPP_AB fpp_atan;
                    137: extern FPP_AB fpp_atanh;
                    138: extern FPP_AB fpp_sin;
                    139: extern FPP_AB fpp_asin;
                    140: extern FPP_AB fpp_tan;
                    141: extern FPP_AB fpp_etox;
                    142: extern FPP_AB fpp_twotox;
                    143: extern FPP_AB fpp_tentox;
                    144: extern FPP_AB fpp_logn;
                    145: extern FPP_AB fpp_log10;
                    146: extern FPP_AB fpp_log2;
                    147: extern FPP_ABP fpp_abs;
                    148: extern FPP_AB fpp_cosh;
                    149: extern FPP_ABP fpp_neg;
                    150: extern FPP_AB fpp_acos;
                    151: extern FPP_AB fpp_cos;
                    152: extern FPP_AB fpp_getexp;
                    153: extern FPP_AB fpp_getman;
                    154: extern FPP_ABP fpp_div;
                    155: extern FPP_ABQS fpp_mod;
                    156: extern FPP_ABP fpp_add;
                    157: extern FPP_ABP fpp_mul;
                    158: extern FPP_ABQS fpp_rem;
                    159: extern FPP_AB fpp_scale;
                    160: extern FPP_ABP fpp_sub;
                    161: extern FPP_AB fpp_sgldiv;
                    162: extern FPP_AB fpp_sglmul;
                    163: extern FPP_AB fpp_cmp;
                    164: extern FPP_AB fpp_tst;
                    165: extern FPP_ABP fpp_move;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.