Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 1030 → Rev 1031

//uspace/trunk/softfloat/include/mul.h
33,7 → 33,7
 
float64 mulFloat64(float64 a, float64 b);
 
void mul64integers(__u64 a,__u64 b, __u64 *lo, __u64 *hi);
void mul64integers(uint64_t a,uint64_t b, uint64_t *lo, uint64_t *hi);
 
#endif
 
//uspace/trunk/softfloat/include/sftypes.h
29,24 → 29,24
#ifndef __SFTYPES_H__
#define __SFTYPES_H__
 
#include <types.h>
#include <arch.h>
#include <endian.h>
#include <stdint.h>
 
typedef union {
float f;
__u32 binary;
uint32_t binary;
 
struct {
#ifdef __BIG_ENDIAN__
__u32 sign:1;
__u32 exp:8;
__u32 fraction:23;
#elif defined __LITTLE_ENDIAN__
__u32 fraction:23;
__u32 exp:8;
__u32 sign:1;
#if __BYTE_ORDER == __BIG_ENDIAN
uint32_t sign:1;
uint32_t exp:8;
uint32_t fraction:23;
#elif __BYTE_ORDER == __LITTLE_ENDIAN
uint32_t fraction:23;
uint32_t exp:8;
uint32_t sign:1;
#else
#error "Unknown endians."
#error "Unknown endians."
#endif
} parts __attribute__ ((packed));
} float32;
53,19 → 53,19
typedef union {
double d;
__u64 binary;
uint64_t binary;
struct {
#ifdef __BIG_ENDIAN__
__u64 sign:1;
__u64 exp:11;
__u64 fraction:52;
#elif defined __LITTLE_ENDIAN__
__u64 fraction:52;
__u64 exp:11;
__u64 sign:1;
#if __BYTE_ORDER == __BIG_ENDIAN
uint64_t sign:1;
uint64_t exp:11;
uint64_t fraction:52;
#elif __BYTE_ORDER == __LITTLE_ENDIAN
uint64_t fraction:52;
uint64_t exp:11;
uint64_t sign:1;
#else
#error "Unknown endians."
#error "Unknown endians."
#endif
} parts __attribute__ ((packed));
} float64;
//uspace/trunk/softfloat/include/softfloat.h
157,6 → 157,8
int __gtdf2(double a, double b);
int __gttf2(long double a, long double b);
/* Not implemented yet*/
float __powisf2(float a, int b);
 
#endif
 
//uspace/trunk/softfloat/include/div.h
32,7 → 32,7
float32 divFloat32(float32 a, float32 b);
float64 divFloat64(float64 a, float64 b);
 
__u64 divFloat64estim(__u64 a, __u64 b);
uint64_t divFloat64estim(uint64_t a, uint64_t b);
 
#endif
 
//uspace/trunk/softfloat/include/conversion.h
33,29 → 33,29
 
float32 convertFloat64ToFloat32(float64 a);
 
__u32 float32_to_uint32(float32 a);
__s32 float32_to_int32(float32 a);
uint32_t float32_to_uint32(float32 a);
int32_t float32_to_int32(float32 a);
 
__u64 float32_to_uint64(float32 a);
__s64 float32_to_int64(float32 a);
uint64_t float32_to_uint64(float32 a);
int64_t float32_to_int64(float32 a);
 
__u64 float64_to_uint64(float64 a);
__s64 float64_to_int64(float64 a);
uint64_t float64_to_uint64(float64 a);
int64_t float64_to_int64(float64 a);
 
__u32 float64_to_uint32(float64 a);
__s32 float64_to_int32(float64 a);
uint32_t float64_to_uint32(float64 a);
int32_t float64_to_int32(float64 a);
 
float32 uint32_to_float32(__u32 i);
float32 int32_to_float32(__s32 i);
float32 uint32_to_float32(uint32_t i);
float32 int32_to_float32(int32_t i);
 
float32 uint64_to_float32(__u64 i);
float32 int64_to_float32(__s64 i);
float32 uint64_to_float32(uint64_t i);
float32 int64_to_float32(int64_t i);
 
float64 uint32_to_float64(__u32 i);
float64 int32_to_float64(__s32 i);
float64 uint32_to_float64(uint32_t i);
float64 int32_to_float64(int32_t i);
 
float64 uint64_to_float64(__u64 i);
float64 int64_to_float64(__s64 i);
float64 uint64_to_float64(uint64_t i);
float64 int64_to_float64(int64_t i);
 
#endif
 
//uspace/trunk/softfloat/include/common.h
31,13 → 31,13
 
#include<sftypes.h>
 
float64 finishFloat64(__s32 cexp, __u64 cfrac, char sign);
float64 finishFloat64(int32_t cexp, uint64_t cfrac, char sign);
 
int countZeroes64(__u64 i);
int countZeroes32(__u32 i);
int countZeroes8(__u8 i);
int countZeroes64(uint64_t i);
int countZeroes32(uint32_t i);
int countZeroes8(uint8_t i);
 
void roundFloat32(__s32 *exp, __u32 *fraction);
void roundFloat64(__s32 *exp, __u64 *fraction);
void roundFloat32(int32_t *exp, uint32_t *fraction);
void roundFloat64(int32_t *exp, uint64_t *fraction);
 
#endif