source: trunk/minix/lib/gnu/ieee_float/ieee_float.h@ 10

Last change on this file since 10 was 9, checked in by Mattia Monga, 14 years ago

Minix 3.1.2a

File size: 1.2 KB
RevLine 
[9]1/*
2libc/ieee_float/ieee_float.h
3
4Created: Oct 14, 1993 by Philip Homburg <philip@cs.vu.nl>
5
6Define structures and macros for manipulating IEEE floats
7*/
8
9#ifndef IEEE_FLOAT_H
10#define IEEE_FLOAT_H
11
12#define isnan __IsNan
13
14struct f64
15{
16 u32_t low_word;
17 u32_t high_word;
18};
19
20#define F64_SIGN_SHIFT 31
21#define F64_SIGN_MASK 1
22
23#define F64_EXP_SHIFT 20
24#define F64_EXP_MASK 0x7ff
25#define F64_EXP_BIAS 1023
26#define F64_EXP_MAX 2047
27
28#define F64_MANT_SHIFT 0
29#define F64_MANT_MASK 0xfffff
30
31#define F64_GET_SIGN(fp) (((fp)->high_word >> F64_SIGN_SHIFT) & \
32 F64_SIGN_MASK)
33#define F64_GET_EXP(fp) (((fp)->high_word >> F64_EXP_SHIFT) & \
34 F64_EXP_MASK)
35#define F64_SET_EXP(fp, val) ((fp)->high_word= ((fp)->high_word & \
36 ~(F64_EXP_MASK << F64_EXP_SHIFT)) | \
37 (((val) & F64_EXP_MASK) << F64_EXP_SHIFT))
38
39#define F64_GET_MANT_LOW(fp) ((fp)->low_word)
40#define F64_SET_MANT_LOW(fp, val) ((fp)->low_word= (val))
41#define F64_GET_MANT_HIGH(fp) (((fp)->high_word >> F64_MANT_SHIFT) & \
42 F64_MANT_MASK)
43#define F64_SET_MANT_HIGH(fp, val) ((fp)->high_word= ((fp)->high_word & \
44 ~(F64_MANT_MASK << F64_MANT_SHIFT)) | \
45 (((val) & F64_MANT_MASK) << F64_MANT_SHIFT))
46
47#endif /* IEEE_FLOAT_H */
48
49/*
50 * $PchId: ieee_float.h,v 1.3 1996/02/22 21:01:39 philip Exp $
51 */
Note: See TracBrowser for help on using the repository browser.