1*44231Sbostic /*
2*44231Sbostic  * machdefs.h
3*44231Sbostic  *
4*44231Sbostic  * Machine definitions for f77 compiler, pass 1.  VAX version.
5*44231Sbostic  *
6*44231Sbostic  * University of Utah CS Dept modification history:
7*44231Sbostic  *
8*44231Sbostic  * $Header: machdefs.h,v 2.2 85/01/14 03:41:13 donn Exp $
9*44231Sbostic  * $Log:	machdefs.h,v $
10*44231Sbostic  * Revision 2.2  85/01/14  03:41:13  donn
11*44231Sbostic  * Added changes to make the storage used for constants that are passed
12*44231Sbostic  * as arguments to functions come out read-only.
13*44231Sbostic  *
14*44231Sbostic  * Revision 2.1  84/07/19  12:55:11  donn
15*44231Sbostic  * Changed comment header to UofU.
16*44231Sbostic  *
17*44231Sbostic  * Revision 1.3  84/07/02  12:04:42  donn
18*44231Sbostic  * I goofed when I added the original changes for SZFLOAT and SZDOUBLE.
19*44231Sbostic  * Thanks to Raleigh Romine for pointing this out (sigh).
20*44231Sbostic  *
21*44231Sbostic  * Revision 1.2  84/02/28  20:46:16  donn
22*44231Sbostic  * Added definitions for SZFLOAT and SZDOUBLE, needed by Berkeley changes to
23*44231Sbostic  * produce shorter offsets to variables in machine code.
24*44231Sbostic  *
25*44231Sbostic  */
26*44231Sbostic 
27*44231Sbostic #ifndef TARGET
28*44231Sbostic TARGET NOT DEFINED !!!
29*44231Sbostic #endif
30*44231Sbostic #if TARGET!= TAHOE
31*44231Sbostic Target= TARGET OUT OF RANGE!!
32*44231Sbostic #endif
33*44231Sbostic 
34*44231Sbostic #ifndef FAMILY
35*44231Sbostic FAMILY NOT DEFINED!!!
36*44231Sbostic #endif
37*44231Sbostic #if FAMILY!=PCC && FAMILY!=DMR
38*44231Sbostic Family = FAMILY OUT OF RANGE
39*44231Sbostic #endif
40*44231Sbostic 
41*44231Sbostic #define SDB 1
42*44231Sbostic 
43*44231Sbostic #define TYLENG		TYLONG
44*44231Sbostic 
45*44231Sbostic #define TYINT		TYLONG
46*44231Sbostic #define SZADDR		4
47*44231Sbostic #define SZSHORT		2
48*44231Sbostic #define SZINT		4
49*44231Sbostic #define SZFLOAT		4
50*44231Sbostic #define SZDOUBLE	8
51*44231Sbostic 
52*44231Sbostic #define SZLONG		4
53*44231Sbostic #define SZLENG		SZLONG
54*44231Sbostic 
55*44231Sbostic #define ALIADDR SZADDR
56*44231Sbostic #define ALISHORT SZSHORT
57*44231Sbostic #define ALILONG 4
58*44231Sbostic #define ALIDOUBLE 4
59*44231Sbostic #define ALIINT	ALILONG
60*44231Sbostic #define ALILENG	ALILONG
61*44231Sbostic 
62*44231Sbostic #define AUTOREG 13
63*44231Sbostic #define ARGREG 12
64*44231Sbostic #define LVARREG 11
65*44231Sbostic #define ARGOFFSET 4
66*44231Sbostic 
67*44231Sbostic 
68*44231Sbostic #define FUDGEOFFSET 1
69*44231Sbostic #define BITSPERCHAR 8
70*44231Sbostic #define XL 16
71*44231Sbostic 
72*44231Sbostic #define USETEXT		".text"
73*44231Sbostic #define USECONST	".data\t0"
74*44231Sbostic #define USEBSS		".data\t1"
75*44231Sbostic #define USEINIT		".data\t2"
76*44231Sbostic 
77*44231Sbostic #define BLANKCOMMON "_BLNK_"
78*44231Sbostic 
79*44231Sbostic #define LABELFMT "%s:\n"
80*44231Sbostic 
81*44231Sbostic #define MAXREGVAR 5
82*44231Sbostic #define TYIREG TYLONG
83*44231Sbostic #define MSKIREG  (M(TYSHORT)|M(TYLONG))
84*44231Sbostic 
85*44231Sbostic #define MAXINT	0x7fffffff
86*44231Sbostic #define MININT  0x80000000
87*44231Sbostic 
88*44231Sbostic #define MAXBYTE	0xff
89*44231Sbostic #define BYTESIZE	8
90*44231Sbostic 
91*44231Sbostic #define SMALLVAR(x) ((x) < 512)
92