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