softfloat.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2005 Josef Cejka
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * - Redistributions of source code must retain the above copyright
00010  *   notice, this list of conditions and the following disclaimer.
00011  * - Redistributions in binary form must reproduce the above copyright
00012  *   notice, this list of conditions and the following disclaimer in the
00013  *   documentation and/or other materials provided with the distribution.
00014  * - The name of the author may not be used to endorse or promote products
00015  *   derived from this software without specific prior written permission.
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
00018  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
00019  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
00020  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
00021  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
00022  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00023  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
00024  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00025  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00026  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00027  */
00028 
00035 #ifndef __SOFTFLOAT_H__
00036 #define __SOFTFLOAT_H__
00037 
00038 extern float __addsf3(float, float);
00039 extern double __adddf3(double, double);
00040 extern long double __addtf3(long double, long double);
00041 extern long double __addxf3(long double, long double);
00042 
00043 extern float __subsf3(float, float);
00044 extern double __subdf3(double, double);
00045 extern long double __subtf3(long double, long double);
00046 extern long double __subxf3(long double, long double);
00047 
00048 extern float __mulsf3(float, float);
00049 extern double __muldf3(double, double);
00050 extern long double __multf3(long double, long double);
00051 extern long double __mulxf3(long double, long double);
00052 
00053 extern float __divsf3(float, float);
00054 extern double __divdf3(double, double);
00055 extern long double __divtf3(long double, long double);
00056 extern long double __divxf3(long double, long double);
00057 
00058 extern float __negsf2(float);
00059 extern double __negdf2(double);
00060 extern long double __negtf2(long double);
00061 extern long double __negxf2(long double);
00062 
00063 extern double __extendsfdf2(float);
00064 extern long double __extendsftf2(float);
00065 extern long double __extendsfxf2(float);
00066 extern long double __extenddftf2(double);
00067 extern long double __extenddfxf2(double);
00068 
00069 extern double __truncxfdf2(long double);
00070 extern double __trunctfdf2(long double);
00071 extern float __truncxfsf2(long double);
00072 extern float __trunctfsf2(long double);
00073 extern float __truncdfsf2(double);
00074 
00075 extern int __fixsfsi(float);
00076 extern int __fixdfsi(double);
00077 extern int __fixtfsi(long double);
00078 extern int __fixxfsi(long double);
00079 
00080 extern long __fixsfdi(float);
00081 extern long __fixdfdi(double);
00082 extern long __fixtfdi(long double);
00083 extern long __fixxfdi(long double);
00084 
00085 extern long long __fixsfti(float);
00086 extern long long __fixdfti(double);
00087 extern long long __fixtfti(long double);
00088 extern long long __fixxfti(long double);
00089 
00090 extern unsigned int __fixunssfsi(float);
00091 extern unsigned int __fixunsdfsi(double);
00092 extern unsigned int __fixunstfsi(long double);
00093 extern unsigned int __fixunsxfsi(long double);
00094 
00095 extern unsigned long __fixunssfdi(float);
00096 extern unsigned long __fixunsdfdi(double);
00097 extern unsigned long __fixunstfdi(long double);
00098 extern unsigned long __fixunsxfdi(long double);
00099 
00100 extern unsigned long long __fixunssfti(float);
00101 extern unsigned long long __fixunsdfti(double);
00102 extern unsigned long long __fixunstfti(long double);
00103 extern unsigned long long __fixunsxfti(long double);
00104 
00105 extern float __floatsisf(int);
00106 extern double __floatsidf(int);
00107 extern long double __floatsitf(int);
00108 extern long double __floatsixf(int);
00109 
00110 extern float __floatdisf(long);
00111 extern double __floatdidf(long);
00112 extern long double __floatditf(long);
00113 extern long double __floatdixf(long);
00114 
00115 extern float __floattisf(long long);
00116 extern double __floattidf(long long);
00117 extern long double __floattitf(long long);
00118 extern long double __floattixf(long long);
00119 
00120 extern float __floatunsisf(unsigned int);
00121 extern double __floatunsidf(unsigned int);
00122 extern long double __floatunsitf(unsigned int);
00123 extern long double __floatunsixf(unsigned int);
00124 
00125 extern float __floatundisf(unsigned long);
00126 extern double __floatundidf(unsigned long);
00127 extern long double __floatunditf(unsigned long);
00128 extern long double __floatundixf(unsigned long);
00129 
00130 extern float __floatuntisf(unsigned long long);
00131 extern double __floatuntidf(unsigned long long);
00132 extern long double __floatuntitf(unsigned long long);
00133 extern long double __floatuntixf(unsigned long long);
00134 
00135 extern int __cmpsf2(float, float);
00136 extern int __cmpdf2(double, double);
00137 extern int __cmptf2(long double, long double);
00138 
00139 extern int __unordsf2(float, float);
00140 extern int __unorddf2(double, double);
00141 extern int __unordtf2(long double, long double);
00142 
00143 extern int __eqsf2(float, float);
00144 extern int __eqdf2(double, double);
00145 extern int __eqtf2(long double, long double);
00146 
00147 extern int __nesf2(float, float);
00148 extern int __nedf2(double, double);
00149 extern int __netf2(long double, long double);
00150 
00151 extern int __gesf2(float, float);
00152 extern int __gedf2(double, double);
00153 extern int __getf2(long double, long double);
00154 
00155 extern int __ltsf2(float, float);
00156 extern int __ltdf2(double, double);
00157 extern int __lttf2(long double, long double);
00158 extern int __lesf2(float, float);
00159 extern int __ledf2(double, double);
00160 extern int __letf2(long double, long double);
00161 
00162 extern int __gtsf2(float, float);
00163 extern int __gtdf2(double, double);
00164 extern int __gttf2(long double, long double);
00165 
00166 /* Not implemented yet */
00167 extern float __powisf2(float, int);
00168 
00169 #endif
00170 

Generated on Thu Jun 2 07:45:48 2011 for HelenOS/USB by  doxygen 1.4.7