Changeset aa59fa0 in mainline for softfloat/include/sftypes.h


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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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));
Note: See TracChangeset for help on using the changeset viewer.