xref: /csrg-svn/usr.bin/f77/pass1.vax/conv.h (revision 22802)
1*22802Smckusick /*
2*22802Smckusick  * Copyright (c) 1980 Regents of the University of California.
3*22802Smckusick  * All rights reserved.  The Berkeley software License Agreement
4*22802Smckusick  * specifies the terms and conditions for redistribution.
5*22802Smckusick  *
6*22802Smckusick  *	@(#)conv.h	5.1 (Berkeley) 06/07/85
7*22802Smckusick  */
8*22802Smckusick 
9*22802Smckusick #if (HERE != VAX || TARGET != VAX)
10*22802Smckusick 	}}}}}	WRONG MACHINE!!!	}}}}}
11*22802Smckusick #endif
12*22802Smckusick 
13*22802Smckusick /*  The code for converting the types of constants is not  */
14*22802Smckusick /*  portable.  The problems involved in dealing with       */
15*22802Smckusick /*  features such as reserved operands and byte orderings  */
16*22802Smckusick /*  have proven very difficult to deal with in a portable  */
17*22802Smckusick /*  manner.  Because of impending deadlines, I have put    */
18*22802Smckusick /*  off trying to achieve portability.                     */
19*22802Smckusick /*                                                         */
20*22802Smckusick /*                             -Robert Paul Corbett        */
21*22802Smckusick /*                              1983 May 1                 */
22*22802Smckusick 
23*22802Smckusick 
24*22802Smckusick #define	BLANK	' '
25*22802Smckusick 
26*22802Smckusick #define MAXWORD  32767
27*22802Smckusick #define MINWORD -32768
28*22802Smckusick 
29*22802Smckusick typedef
30*22802Smckusick   struct Dreal
31*22802Smckusick     {
32*22802Smckusick       unsigned fract1: 7;
33*22802Smckusick       unsigned exp: 8;
34*22802Smckusick       unsigned sign: 1;
35*22802Smckusick       unsigned fract2: 16;
36*22802Smckusick       unsigned fract3: 16;
37*22802Smckusick       unsigned fract4: 16;
38*22802Smckusick     }
39*22802Smckusick   dreal;
40*22802Smckusick 
41*22802Smckusick typedef
42*22802Smckusick   struct Quad
43*22802Smckusick     {
44*22802Smckusick       long word1;
45*22802Smckusick       long word2;
46*22802Smckusick     }
47*22802Smckusick   quad;
48*22802Smckusick 
49*22802Smckusick typedef
50*22802Smckusick   union RealValue
51*22802Smckusick     {
52*22802Smckusick       double d;
53*22802Smckusick       quad   q;
54*22802Smckusick       dreal  f;
55*22802Smckusick     }
56*22802Smckusick   realvalue;
57