Changeset aa59fa0 in mainline for softfloat/include


Ignore:
Timestamp:
2006-03-16T00:32:41Z (19 years ago)
Author:
Josef Cejka <malyzelenyhnus@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
585819d
Parents:
69cdeec
Message:

SoftFloat integrated into HelenOS uspace.

Location:
softfloat/include
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • softfloat/include/common.h

    r69cdeec raa59fa0  
    3232#include<sftypes.h>
    3333
    34 float64 finishFloat64(__s32 cexp, __u64 cfrac, char sign);
     34float64 finishFloat64(int32_t cexp, uint64_t cfrac, char sign);
    3535
    36 int countZeroes64(__u64 i);
    37 int countZeroes32(__u32 i);
    38 int countZeroes8(__u8 i);
     36int countZeroes64(uint64_t i);
     37int countZeroes32(uint32_t i);
     38int countZeroes8(uint8_t i);
    3939
    40 void roundFloat32(__s32 *exp, __u32 *fraction);
    41 void roundFloat64(__s32 *exp, __u64 *fraction);
     40void roundFloat32(int32_t *exp, uint32_t *fraction);
     41void roundFloat64(int32_t *exp, uint64_t *fraction);
    4242
    4343#endif
  • softfloat/include/conversion.h

    r69cdeec raa59fa0  
    3434float32 convertFloat64ToFloat32(float64 a);
    3535
    36 __u32 float32_to_uint32(float32 a);
    37 __s32 float32_to_int32(float32 a);
     36uint32_t float32_to_uint32(float32 a);
     37int32_t float32_to_int32(float32 a);
    3838
    39 __u64 float32_to_uint64(float32 a);
    40 __s64 float32_to_int64(float32 a);
     39uint64_t float32_to_uint64(float32 a);
     40int64_t float32_to_int64(float32 a);
    4141
    42 __u64 float64_to_uint64(float64 a);
    43 __s64 float64_to_int64(float64 a);
     42uint64_t float64_to_uint64(float64 a);
     43int64_t float64_to_int64(float64 a);
    4444
    45 __u32 float64_to_uint32(float64 a);
    46 __s32 float64_to_int32(float64 a);
     45uint32_t float64_to_uint32(float64 a);
     46int32_t float64_to_int32(float64 a);
    4747
    48 float32 uint32_to_float32(__u32 i);
    49 float32 int32_to_float32(__s32 i);
     48float32 uint32_to_float32(uint32_t i);
     49float32 int32_to_float32(int32_t i);
    5050
    51 float32 uint64_to_float32(__u64 i);
    52 float32 int64_to_float32(__s64 i);
     51float32 uint64_to_float32(uint64_t i);
     52float32 int64_to_float32(int64_t i);
    5353
    54 float64 uint32_to_float64(__u32 i);
    55 float64 int32_to_float64(__s32 i);
     54float64 uint32_to_float64(uint32_t i);
     55float64 int32_to_float64(int32_t i);
    5656
    57 float64 uint64_to_float64(__u64 i);
    58 float64 int64_to_float64(__s64 i);
     57float64 uint64_to_float64(uint64_t i);
     58float64 int64_to_float64(int64_t i);
    5959
    6060#endif
  • softfloat/include/div.h

    r69cdeec raa59fa0  
    3333float64 divFloat64(float64 a, float64 b);
    3434
    35 __u64 divFloat64estim(__u64 a, __u64 b);
     35uint64_t divFloat64estim(uint64_t a, uint64_t b);
    3636
    3737#endif
  • softfloat/include/mul.h

    r69cdeec raa59fa0  
    3434float64 mulFloat64(float64 a, float64 b);
    3535
    36 void mul64integers(__u64 a,__u64 b, __u64 *lo, __u64 *hi);
     36void mul64integers(uint64_t a,uint64_t b, uint64_t *lo, uint64_t *hi);
    3737
    3838#endif
  • softfloat/include/sftypes.h

    r69cdeec raa59fa0  
    3030#define __SFTYPES_H__
    3131
    32 #include <types.h>
    33 #include <arch.h>
     32#include <endian.h>
     33#include <stdint.h>
    3434
    3535typedef union {
    3636        float f;
    37         __u32 binary;
     37        uint32_t binary;
    3838
    3939        struct  {
    40                 #ifdef __BIG_ENDIAN__
    41                 __u32 sign:1;
    42                 __u32 exp:8;
    43                 __u32 fraction:23;
    44                 #elif defined __LITTLE_ENDIAN__
    45                 __u32 fraction:23;
    46                 __u32 exp:8;
    47                 __u32 sign:1;
     40                #if __BYTE_ORDER == __BIG_ENDIAN
     41                uint32_t sign:1;
     42                uint32_t exp:8;
     43                uint32_t fraction:23;
     44                #elif __BYTE_ORDER == __LITTLE_ENDIAN
     45                uint32_t fraction:23;
     46                uint32_t exp:8;
     47                uint32_t sign:1;
    4848                #else
    49                 #error "Unknown endians."
     49                        #error "Unknown endians."
    5050                #endif
    5151                } parts __attribute__ ((packed));
     
    5454typedef union {
    5555        double d;
    56         __u64 binary;
     56        uint64_t binary;
    5757       
    5858        struct  {
    59                 #ifdef __BIG_ENDIAN__
    60                 __u64 sign:1;
    61                 __u64 exp:11;
    62                 __u64 fraction:52;
    63                 #elif defined __LITTLE_ENDIAN__
    64                 __u64 fraction:52;
    65                 __u64 exp:11;
    66                 __u64 sign:1;
     59                #if __BYTE_ORDER == __BIG_ENDIAN
     60                uint64_t sign:1;
     61                uint64_t exp:11;
     62                uint64_t fraction:52;
     63                #elif __BYTE_ORDER == __LITTLE_ENDIAN
     64                uint64_t fraction:52;
     65                uint64_t exp:11;
     66                uint64_t sign:1;
    6767                #else
    68                 #error "Unknown endians."
     68                        #error "Unknown endians."
    6969                #endif
    7070                } parts __attribute__ ((packed));
  • softfloat/include/softfloat.h

    r69cdeec raa59fa0  
    158158int __gttf2(long double a, long double b);
    159159 
    160  
     160/* Not implemented yet*/
     161float __powisf2(float a, int b);
     162
    161163#endif
    162164
Note: See TracChangeset for help on using the changeset viewer.