Changeset 56a39dde in mainline
- Timestamp:
- 2006-01-09T20:43:12Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ecfd7e5
- Parents:
- feef1cd
- Location:
- softfloat/generic
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
softfloat/generic/conversion.c
rfeef1cd r56a39dde 60 60 --result.parts.exp; 61 61 }; 62 63 ++result.parts.exp; 62 64 result.parts.mantisa = mant; 63 65 }; … … 109 111 110 112 exp *= -1; 111 112 113 if (exp > FLOAT32_MANTISA_SIZE ) { 113 114 /* FIXME: underflow */ … … 118 119 /* denormalized */ 119 120 120 mant = result.parts.mantisa >> 1;121 mant = a.parts.mantisa; 121 122 mant |= 0x10000000000000ll; /* denormalize and set hidden bit */ 123 124 mant >>= (FLOAT64_MANTISA_SIZE - FLOAT32_MANTISA_SIZE + 1); 122 125 123 126 while (exp > 0) { -
softfloat/generic/softfloat.c
rfeef1cd r56a39dde 50 50 } 51 51 return addFloat32(fa,fb).f; 52 } ;52 } 53 53 54 54 float __subsf3(float a, float b) … … 62 62 } 63 63 return subFloat32(fa,fb).f; 64 } ;64 } 65 65 66 66 float __mulsf3(float a, float b) … … 78 78 fb.f=b; 79 79 // return divFloat32(fa, fb).f; 80 } ;80 } 81 81 82 82 float __negsf2(float a) … … 86 86 fa.parts.sign=!fa.parts.sign; 87 87 return fa.f; 88 } ;88 } 89 89 90 90 double __negdf2(double a) … … 94 94 fa.parts.sign=!fa.parts.sign; 95 95 return fa.d; 96 } ;96 } 97 97 98 98 /* Conversion functions */ … … 103 103 fa.f = a; 104 104 return convertFloat32ToFloat64(fa).d; 105 } ;105 } 106 106 107 107 float __truncdfsf2(double a) … … 111 111 return convertFloat64ToFloat32(da).f; 112 112 } 113 113 114 /* Comparison functions */ 114 115 … … 144 145 fb.f=b; 145 146 return ((isFloat32NaN(fa))||(isFloat32NaN(fb))); 146 } ;147 } 147 148 148 149 /** … … 159 160 }; 160 161 return isFloat32eq(fa,fb)-1; 161 } ;162 } 162 163 163 164 /* strange behavior, but it was in gcc documentation */ … … 165 166 { 166 167 return __eqsf2(a,b); 167 } ;168 } 168 169 169 170 /* return value >= 0 if a>=b and neither is NaN */ … … 245 246 /* Other functions */ 246 247 248 float __powisf2(float a, int b) 249 { 250 //TODO: 251 } 252 253 float __mulsc3(float a, float b, float c, float d) 254 { 255 //TODO: 256 } 257 258 float __divsc3(float a, float b, float c, float d) 259 { 260 //TODO: 261 } 262
Note:
See TracChangeset
for help on using the changeset viewer.