xref: /csrg-svn/usr.bin/f77/pass1.tahoe/conv.h (revision 43204)
1*43204Sbostic #if TARGET != TAHOE
2*43204Sbostic 	}}}}}	WRONG MACHINE!!!	}}}}}
3*43204Sbostic #endif
4*43204Sbostic 
5*43204Sbostic /*  The code for converting the types of constants is not  */
6*43204Sbostic /*  portable.  The problems involved in dealing with       */
7*43204Sbostic /*  features such as reserved operands and byte orderings  */
8*43204Sbostic /*  have proven very difficult to deal with in a portable  */
9*43204Sbostic /*  manner.						   */
10*43204Sbostic 
11*43204Sbostic #define	BLANK	' '
12*43204Sbostic 
13*43204Sbostic #define MAXWORD  0x7fff
14*43204Sbostic #define MINWORD -0x8000
15*43204Sbostic 
16*43204Sbostic typedef
17*43204Sbostic   struct Dreal
18*43204Sbostic     {
19*43204Sbostic #if HERE == VAX
20*43204Sbostic       unsigned fract1: 7;
21*43204Sbostic       unsigned exp: 8;
22*43204Sbostic       unsigned sign: 1;
23*43204Sbostic #else
24*43204Sbostic #if HERE == TAHOE
25*43204Sbostic       unsigned sign: 1;
26*43204Sbostic       unsigned exp: 8;
27*43204Sbostic       unsigned fract1: 7;
28*43204Sbostic #else
29*43204Sbostic 	}}}}}	WRONG MACHINE!!!	}}}}}
30*43204Sbostic #endif
31*43204Sbostic #endif
32*43204Sbostic       unsigned fract2: 16;
33*43204Sbostic       unsigned short fract3;
34*43204Sbostic       unsigned short fract4;
35*43204Sbostic     }
36*43204Sbostic   dreal;
37*43204Sbostic 
38*43204Sbostic typedef
39*43204Sbostic   struct Quad
40*43204Sbostic     {
41*43204Sbostic       long word1;
42*43204Sbostic       long word2;
43*43204Sbostic     }
44*43204Sbostic   quad;
45*43204Sbostic 
46*43204Sbostic typedef
47*43204Sbostic   union RealValue
48*43204Sbostic     {
49*43204Sbostic       double d;
50*43204Sbostic       quad   q;
51*43204Sbostic       dreal  f;
52*43204Sbostic     }
53*43204Sbostic   realvalue;
54