Home | History | Annotate | Line # | Download | only in softfloat
softfloat-for-gcc.h revision 1.8
      1  1.8   matt /* $NetBSD: softfloat-for-gcc.h,v 1.8 2009/12/14 01:07:42 matt Exp $ */
      2  1.1  bjh21 
      3  1.1  bjh21 /*
      4  1.1  bjh21  * Move private identifiers with external linkage into implementation
      5  1.6   salo  * namespace.  -- Klaus Klein <kleink (at) NetBSD.org>, May 5, 1999
      6  1.1  bjh21  */
      7  1.1  bjh21 #define float_exception_flags	_softfloat_float_exception_flags
      8  1.5  bjh21 #define float_exception_mask	_softfloat_float_exception_mask
      9  1.1  bjh21 #define float_rounding_mode	_softfloat_float_rounding_mode
     10  1.1  bjh21 #define float_raise		_softfloat_float_raise
     11  1.8   matt 
     12  1.1  bjh21 /* The following batch are called by GCC through wrappers */
     13  1.1  bjh21 #define float32_eq		_softfloat_float32_eq
     14  1.1  bjh21 #define float32_le		_softfloat_float32_le
     15  1.1  bjh21 #define float32_lt		_softfloat_float32_lt
     16  1.1  bjh21 #define float64_eq		_softfloat_float64_eq
     17  1.1  bjh21 #define float64_le		_softfloat_float64_le
     18  1.1  bjh21 #define float64_lt		_softfloat_float64_lt
     19  1.8   matt #define float128_eq		_softfloat_float128_eq
     20  1.8   matt #define float128_le		_softfloat_float128_le
     21  1.8   matt #define float128_lt		_softfloat_float128_lt
     22  1.1  bjh21 
     23  1.1  bjh21 /*
     24  1.1  bjh21  * Macros to define functions with the GCC expected names
     25  1.1  bjh21  */
     26  1.1  bjh21 
     27  1.1  bjh21 #define float32_add			__addsf3
     28  1.1  bjh21 #define float64_add			__adddf3
     29  1.7   jmmv #define floatx80_add			__addxf3
     30  1.8   matt #define float128_add			__addtf3
     31  1.8   matt 
     32  1.1  bjh21 #define float32_sub			__subsf3
     33  1.1  bjh21 #define float64_sub			__subdf3
     34  1.7   jmmv #define floatx80_sub			__subxf3
     35  1.8   matt #define float128_sub			__subtf3
     36  1.8   matt 
     37  1.1  bjh21 #define float32_mul			__mulsf3
     38  1.1  bjh21 #define float64_mul			__muldf3
     39  1.7   jmmv #define floatx80_mul			__mulxf3
     40  1.8   matt #define float128_mul			__multf3
     41  1.8   matt 
     42  1.1  bjh21 #define float32_div			__divsf3
     43  1.1  bjh21 #define float64_div			__divdf3
     44  1.7   jmmv #define floatx80_div			__divxf3
     45  1.8   matt #define float128_div			__divtf3
     46  1.8   matt 
     47  1.8   matt #if 0
     48  1.8   matt #define float32_neg			__negsf2
     49  1.8   matt #define float64_neg			__negdf2
     50  1.8   matt #define floatx80_neg			__negxf2
     51  1.8   matt #define float128_neg			__negtf2
     52  1.8   matt #endif
     53  1.8   matt 
     54  1.1  bjh21 #define int32_to_float32		__floatsisf
     55  1.1  bjh21 #define int32_to_float64		__floatsidf
     56  1.7   jmmv #define int32_to_floatx80		__floatsixf
     57  1.8   matt #define int32_to_float128		__floatsitf
     58  1.8   matt 
     59  1.1  bjh21 #define int64_to_float32		__floatdisf
     60  1.1  bjh21 #define int64_to_float64		__floatdidf
     61  1.7   jmmv #define int64_to_floatx80		__floatdixf
     62  1.8   matt #define int64_to_float128		__floatditf
     63  1.8   matt 
     64  1.8   matt #define int128_to_float32		__floattisf
     65  1.8   matt #define int128_to_float64		__floattidf
     66  1.8   matt #define int128_to_floatx80		__floattixf
     67  1.8   matt #define int128_to_float128		__floattitf
     68  1.8   matt 
     69  1.8   matt #define uint32_to_float32		__floatunsisf
     70  1.8   matt #define uint32_to_float64		__floatunsidf
     71  1.8   matt #define uint32_to_floatx80		__floatunsixf
     72  1.8   matt #define uint32_to_float128		__floatunsitf
     73  1.8   matt 
     74  1.8   matt #define uint64_to_float32		__floatundisf
     75  1.8   matt #define uint64_to_float64		__floatundidf
     76  1.8   matt #define uint64_to_floatx80		__floatundixf
     77  1.8   matt #define uint64_to_float128		__floatunditf
     78  1.8   matt 
     79  1.8   matt #define uint128_to_float32		__floatuntisf
     80  1.8   matt #define uint128_to_float64		__floatuntidf
     81  1.8   matt #define uint128_to_floatx80		__floatuntixf
     82  1.8   matt #define uint128_to_float128		__floatuntitf
     83  1.8   matt 
     84  1.1  bjh21 #define float32_to_int32_round_to_zero	__fixsfsi
     85  1.1  bjh21 #define float64_to_int32_round_to_zero	__fixdfsi
     86  1.7   jmmv #define floatx80_to_int32_round_to_zero __fixxfsi
     87  1.8   matt #define float128_to_int32_round_to_zero __fixtfsi
     88  1.8   matt 
     89  1.1  bjh21 #define float32_to_int64_round_to_zero	__fixsfdi
     90  1.1  bjh21 #define float64_to_int64_round_to_zero	__fixdfdi
     91  1.8   matt #define floatx80_to_int64_round_to_zero	__fixxfdi
     92  1.8   matt #define float128_to_int64_round_to_zero	__fixtfdi
     93  1.8   matt 
     94  1.8   matt #define float32_to_int128_round_to_zero __fixsfti
     95  1.8   matt #define float64_to_int128_round_to_zero __fixdfti
     96  1.8   matt #define floatx80_to_int128_round_to_zero __fixxfti
     97  1.8   matt #define float128_to_int128_round_to_zero __fixtfti
     98  1.8   matt 
     99  1.4  bjh21 #define float32_to_uint32_round_to_zero	__fixunssfsi
    100  1.4  bjh21 #define float64_to_uint32_round_to_zero	__fixunsdfsi
    101  1.8   matt #define floatx80_to_uint32_round_to_zero	__fixunsxfsi
    102  1.8   matt #define float128_to_uint32_round_to_zero	__fixunstfsi
    103  1.8   matt 
    104  1.8   matt #define float32_to_uint64_round_to_zero	__fixunssfdi
    105  1.8   matt #define float64_to_uint64_round_to_zero	__fixunsdfdi
    106  1.8   matt #define floatx80_to_uint64_round_to_zero	__fixunsxfdi
    107  1.8   matt #define float128_to_uint64_round_to_zero	__fixunstfdi
    108  1.8   matt 
    109  1.8   matt #define float32_to_uint128_round_to_zero	__fixunssfti
    110  1.8   matt #define float64_to_uint128_round_to_zero	__fixunsdfti
    111  1.8   matt #define floatx80_to_uint128_round_to_zero	__fixunsxfti
    112  1.8   matt #define float128_to_uint128_round_to_zero	__fixunstfti
    113  1.8   matt 
    114  1.1  bjh21 #define float32_to_float64		__extendsfdf2
    115  1.8   matt #define float32_to_floatx80		__extendsfxf2
    116  1.8   matt #define float32_to_float128		__extendsftf2
    117  1.7   jmmv #define float64_to_floatx80		__extenddfxf2
    118  1.8   matt #define float64_to_float128		__extenddftf2
    119  1.8   matt 
    120  1.8   matt #define float128_to_float64		__trunctfdf2
    121  1.7   jmmv #define floatx80_to_float64		__truncxfdf2
    122  1.8   matt #define float128_to_float32		__trunctfsf2
    123  1.7   jmmv #define floatx80_to_float32		__truncxfsf2
    124  1.8   matt #define float64_to_float32		__truncdfsf2
    125  1.8   matt 
    126  1.8   matt #if 0
    127  1.8   matt #define float32_cmp			__cmpsf2
    128  1.8   matt #define float32_unord			__unordsf2
    129  1.8   matt #define float32_eq			__eqsf2
    130  1.8   matt #define float32_ne			__nesf2
    131  1.8   matt #define float32_ge			__gesf2
    132  1.8   matt #define float32_lt			__ltsf2
    133  1.8   matt #define float32_le			__lesf2
    134  1.8   matt #define float32_gt			__gtsf2
    135  1.8   matt #endif
    136  1.8   matt 
    137  1.8   matt #if 0
    138  1.8   matt #define float64_cmp			__cmpdf2
    139  1.8   matt #define float64_unord			__unorddf2
    140  1.8   matt #define float64_eq			__eqdf2
    141  1.8   matt #define float64_ne			__nedf2
    142  1.8   matt #define float64_ge			__gedf2
    143  1.8   matt #define float64_lt			__ltdf2
    144  1.8   matt #define float64_le			__ledf2
    145  1.8   matt #define float64_gt			__gtdf2
    146  1.8   matt #endif
    147  1.7   jmmv 
    148  1.8   matt /* XXX not in libgcc */
    149  1.8   matt #if 1
    150  1.8   matt #define floatx80_cmp			__cmpxf2
    151  1.8   matt #define floatx80_unord			__unordxf2
    152  1.8   matt #define floatx80_eq			__eqxf2
    153  1.8   matt #define floatx80_ne			__nexf2
    154  1.8   matt #define floatx80_ge			__gexf2
    155  1.7   jmmv #define floatx80_lt			__ltxf2
    156  1.7   jmmv #define floatx80_le			__lexf2
    157  1.8   matt #define floatx80_gt			__gtxf2
    158  1.8   matt #endif
    159  1.8   matt 
    160  1.8   matt #if 0
    161  1.8   matt #define float128_cmp			__cmptf2
    162  1.8   matt #define float128_unord			__unordtf2
    163  1.8   matt #define float128_eq			__eqtf2
    164  1.8   matt #define float128_ne			__netf2
    165  1.8   matt #define float128_ge			__getf2
    166  1.8   matt #define float128_lt			__lttf2
    167  1.8   matt #define float128_le			__letf2
    168  1.8   matt #define float128_gt			__gttf2
    169  1.8   matt #endif
    170