Changeset 1266543 in mainline for softfloat/generic/softfloat.c


Ignore:
Timestamp:
2006-02-07T00:41:18Z (19 years ago)
Author:
Josef Cejka <malyzelenyhnus@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
1a030b8
Parents:
b7e65d4
Message:

32 bit float division added.
Some small bugs fixed.
Code cleanup.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • softfloat/generic/softfloat.c

    rb7e65d4 r1266543  
    4444{
    4545        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) {
    4949                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;
    5555        }
    56         return addFloat32(fa,fb).f;
     56        return addFloat32(fa, fb).f;
    5757}
    5858
     
    6060{
    6161        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) {
    6565                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;
    7171        }
    72         return addFloat64(da,db).d;
     72        return addFloat64(da, db).d;
    7373}
    7474
     
    7676{
    7777        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;
    8383        }
    84         return subFloat32(fa,fb).f;
     84        return subFloat32(fa, fb).f;
    8585}
    8686
     
    100100{
    101101        float32 fa, fb;
    102         fa.f=a;
    103         fb.f=b;
     102        fa.f = a;
     103        fb.f = b;
    104104        return  mulFloat32(fa, fb).f;
    105105}
     
    116116{
    117117        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;
    121121}
    122122
     
    124124{
    125125        float32 fa;
    126         fa.f=a;
    127         fa.parts.sign=!fa.parts.sign;
     126        fa.f = a;
     127        fa.parts.sign = !fa.parts.sign;
    128128        return fa.f;
    129129}
     
    132132{
    133133        float64 fa;
    134         fa.d=a;
    135         fa.parts.sign=!fa.parts.sign;
     134        fa.d = a;
     135        fa.parts.sign = !fa.parts.sign;
    136136        return fa.d;
    137137}
     
    162162int __cmpsf2(float a, float b)
    163163{
    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)) ) {
    168168                return 1; /* no special constant for unordered - maybe signaled? */
    169169        };
    170170
    171171       
    172         if (isFloat32eq(fa,fb)) {
     172        if (isFloat32eq(fa, fb)) {
    173173                return 0;
    174174        };
    175175       
    176         if (isFloat32lt(fa,fb)) {
     176        if (isFloat32lt(fa, fb)) {
    177177                return -1;
    178178                };
     
    182182int __unordsf2(float a, float b)
    183183{
    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)) );
    188188}
    189189
     
    193193int __eqsf2(float a, float b)
    194194{
    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;
    203203}
    204204
     
    206206int __nesf2(float a, float b)
    207207{
    208         return __eqsf2(a,b);
     208        return __eqsf2(a, b);
    209209}
    210210
     
    212212int __gesf2(float a, float b)
    213213{
    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)) {
    223223                return 0;
    224224        };
    225225       
    226         if (isFloat32gt(fa,fb)) {
     226        if (isFloat32gt(fa, fb)) {
    227227                return 1;
    228228                };
     
    234234int __ltsf2(float a, float b)
    235235{
    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)) ) {
    240240                /* TODO: sigNaNs*/
    241241                return 1;
     
    250250int __lesf2(float a, float b)
    251251{
    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)) {
    261261                return 0;
    262262        };
    263263       
    264         if (isFloat32lt(fa,fb)) {
     264        if (isFloat32lt(fa, fb)) {
    265265                return -1;
    266266                };
     
    272272int __gtsf2(float a, float b)
    273273{
    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)) ) {
    278278                /* TODO: sigNaNs*/
    279279                return -1;
     
    289289float __powisf2(float a, int b)
    290290{
    291 //TODO:
     291/* TODO: */
    292292}
    293293
    294294float __mulsc3(float a, float b, float c, float d)
    295295{
    296 //TODO:
     296/* TODO: */
    297297}
    298298
    299299float __divsc3(float a, float b, float c, float d)
    300300{
    301 //TODO:
    302 }
    303 
     301/* TODO: */
     302}
     303
Note: See TracChangeset for help on using the changeset viewer.