Changeset 1266543 in mainline for softfloat/generic/softfloat.c
- Timestamp:
- 2006-02-07T00:41:18Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1a030b8
- Parents:
- b7e65d4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
softfloat/generic/softfloat.c
rb7e65d4 r1266543 44 44 { 45 45 float32 fa, fb; 46 fa.f =a;47 fb.f =b;48 if (fa.parts.sign !=fb.parts.sign) {46 fa.f = a; 47 fb.f = b; 48 if (fa.parts.sign != fb.parts.sign) { 49 49 if (fa.parts.sign) { 50 fa.parts.sign =0;51 return subFloat32(fb, fa).f;52 }; 53 fb.parts.sign =0;54 return subFloat32(fa, fb).f;50 fa.parts.sign = 0; 51 return subFloat32(fb, fa).f; 52 }; 53 fb.parts.sign = 0; 54 return subFloat32(fa, fb).f; 55 55 } 56 return addFloat32(fa, fb).f;56 return addFloat32(fa, fb).f; 57 57 } 58 58 … … 60 60 { 61 61 float64 da, db; 62 da.d =a;63 db.d =b;64 if (da.parts.sign !=db.parts.sign) {62 da.d = a; 63 db.d = b; 64 if (da.parts.sign != db.parts.sign) { 65 65 if (da.parts.sign) { 66 da.parts.sign =0;67 return subFloat64(db, da).d;68 }; 69 db.parts.sign =0;70 return subFloat64(da, db).d;66 da.parts.sign = 0; 67 return subFloat64(db, da).d; 68 }; 69 db.parts.sign = 0; 70 return subFloat64(da, db).d; 71 71 } 72 return addFloat64(da, db).d;72 return addFloat64(da, db).d; 73 73 } 74 74 … … 76 76 { 77 77 float32 fa, fb; 78 fa.f =a;79 fb.f =b;80 if (fa.parts.sign !=fb.parts.sign) {81 fb.parts.sign =!fb.parts.sign;82 return addFloat32(fa, fb).f;78 fa.f = a; 79 fb.f = b; 80 if (fa.parts.sign != fb.parts.sign) { 81 fb.parts.sign = !fb.parts.sign; 82 return addFloat32(fa, fb).f; 83 83 } 84 return subFloat32(fa, fb).f;84 return subFloat32(fa, fb).f; 85 85 } 86 86 … … 100 100 { 101 101 float32 fa, fb; 102 fa.f =a;103 fb.f =b;102 fa.f = a; 103 fb.f = b; 104 104 return mulFloat32(fa, fb).f; 105 105 } … … 116 116 { 117 117 float32 fa, fb; 118 fa.f =a;119 fb.f =b;120 //return divFloat32(fa, fb).f;118 fa.f = a; 119 fb.f = b; 120 return divFloat32(fa, fb).f; 121 121 } 122 122 … … 124 124 { 125 125 float32 fa; 126 fa.f =a;127 fa.parts.sign =!fa.parts.sign;126 fa.f = a; 127 fa.parts.sign = !fa.parts.sign; 128 128 return fa.f; 129 129 } … … 132 132 { 133 133 float64 fa; 134 fa.d =a;135 fa.parts.sign =!fa.parts.sign;134 fa.d = a; 135 fa.parts.sign = !fa.parts.sign; 136 136 return fa.d; 137 137 } … … 162 162 int __cmpsf2(float a, float b) 163 163 { 164 float32 fa, fb;165 fa.f =a;166 fb.f =b;167 if ( (isFloat32NaN(fa))||(isFloat32NaN(fb))) {164 float32 fa, fb; 165 fa.f = a; 166 fb.f = b; 167 if ( (isFloat32NaN(fa)) || (isFloat32NaN(fb)) ) { 168 168 return 1; /* no special constant for unordered - maybe signaled? */ 169 169 }; 170 170 171 171 172 if (isFloat32eq(fa, fb)) {172 if (isFloat32eq(fa, fb)) { 173 173 return 0; 174 174 }; 175 175 176 if (isFloat32lt(fa, fb)) {176 if (isFloat32lt(fa, fb)) { 177 177 return -1; 178 178 }; … … 182 182 int __unordsf2(float a, float b) 183 183 { 184 float32 fa, fb;185 fa.f =a;186 fb.f =b;187 return ( (isFloat32NaN(fa))||(isFloat32NaN(fb)));184 float32 fa, fb; 185 fa.f = a; 186 fb.f = b; 187 return ( (isFloat32NaN(fa)) || (isFloat32NaN(fb)) ); 188 188 } 189 189 … … 193 193 int __eqsf2(float a, float b) 194 194 { 195 float32 fa, fb;196 fa.f =a;197 fb.f =b;198 if ( (isFloat32NaN(fa))||(isFloat32NaN(fb))) {199 /* TODO: sigNaNs*/ 200 return 1; 201 }; 202 return isFloat32eq(fa, fb)-1;195 float32 fa, fb; 196 fa.f = a; 197 fb.f = b; 198 if ( (isFloat32NaN(fa)) || (isFloat32NaN(fb)) ) { 199 /* TODO: sigNaNs*/ 200 return 1; 201 }; 202 return isFloat32eq(fa, fb) - 1; 203 203 } 204 204 … … 206 206 int __nesf2(float a, float b) 207 207 { 208 return __eqsf2(a, b);208 return __eqsf2(a, b); 209 209 } 210 210 … … 212 212 int __gesf2(float a, float b) 213 213 { 214 float32 fa, fb;215 fa.f =a;216 fb.f =b;217 if ( (isFloat32NaN(fa))||(isFloat32NaN(fb))) {218 /* TODO: sigNaNs*/ 219 return -1; 220 }; 221 222 if (isFloat32eq(fa, fb)) {214 float32 fa, fb; 215 fa.f = a; 216 fb.f = b; 217 if ( (isFloat32NaN(fa)) || (isFloat32NaN(fb)) ) { 218 /* TODO: sigNaNs*/ 219 return -1; 220 }; 221 222 if (isFloat32eq(fa, fb)) { 223 223 return 0; 224 224 }; 225 225 226 if (isFloat32gt(fa, fb)) {226 if (isFloat32gt(fa, fb)) { 227 227 return 1; 228 228 }; … … 234 234 int __ltsf2(float a, float b) 235 235 { 236 float32 fa, fb;237 fa.f =a;238 fb.f =b;239 if ( (isFloat32NaN(fa))||(isFloat32NaN(fb))) {236 float32 fa, fb; 237 fa.f = a; 238 fb.f = b; 239 if ( (isFloat32NaN(fa)) || (isFloat32NaN(fb)) ) { 240 240 /* TODO: sigNaNs*/ 241 241 return 1; … … 250 250 int __lesf2(float a, float b) 251 251 { 252 float32 fa, fb;253 fa.f =a;254 fb.f =b;255 if ( (isFloat32NaN(fa))||(isFloat32NaN(fb))) {256 /* TODO: sigNaNs*/ 257 return 1; 258 }; 259 260 if (isFloat32eq(fa, fb)) {252 float32 fa, fb; 253 fa.f = a; 254 fb.f = b; 255 if ( (isFloat32NaN(fa)) || (isFloat32NaN(fb)) ) { 256 /* TODO: sigNaNs*/ 257 return 1; 258 }; 259 260 if (isFloat32eq(fa, fb)) { 261 261 return 0; 262 262 }; 263 263 264 if (isFloat32lt(fa, fb)) {264 if (isFloat32lt(fa, fb)) { 265 265 return -1; 266 266 }; … … 272 272 int __gtsf2(float a, float b) 273 273 { 274 float32 fa, fb;275 fa.f =a;276 fb.f =b;277 if ( (isFloat32NaN(fa))||(isFloat32NaN(fb))) {274 float32 fa, fb; 275 fa.f = a; 276 fb.f = b; 277 if ( (isFloat32NaN(fa)) || (isFloat32NaN(fb)) ) { 278 278 /* TODO: sigNaNs*/ 279 279 return -1; … … 289 289 float __powisf2(float a, int b) 290 290 { 291 / /TODO:291 /* TODO: */ 292 292 } 293 293 294 294 float __mulsc3(float a, float b, float c, float d) 295 295 { 296 / /TODO:296 /* TODO: */ 297 297 } 298 298 299 299 float __divsc3(float a, float b, float c, float d) 300 300 { 301 / /TODO:302 } 303 301 /* TODO: */ 302 } 303
Note:
See TracChangeset
for help on using the changeset viewer.