|
|
1.1 root 1: /* as.h - global header file
2: Copyright (C) 1987 Free Software Foundation, Inc.
3:
4: This file is part of GAS, the GNU Assembler.
5:
6: GAS is free software; you can redistribute it and/or modify
7: it under the terms of the GNU General Public License as published by
8: the Free Software Foundation; either version 1, or (at your option)
9: any later version.
10:
11: GAS is distributed in the hope that it will be useful,
12: but WITHOUT ANY WARRANTY; without even the implied warranty of
13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: GNU General Public License for more details.
15:
16: You should have received a copy of the GNU General Public License
17: along with GAS; see the file COPYING. If not, write to
18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19:
20: /*
21: * CAPITALISED names are #defined.
22: * "lowercaseT" is a typedef of "lowercase" objects.
23: * "lowercaseP" is type "pointer to object of type 'lowercase'".
24: * "lowercaseS" is typedef struct ... lowercaseS.
25: *
26: * #define SUSPECT when debugging.
27: * If TEST is #defined, then we are testing a module.
28: */
29:
30: /* These #defines are for parameters of entire assembler. */
31:
32: /*
33: * asserts() from <assert.h> are DISabled when NDEBUG is defined and
34: * asserts() from <assert.h> are ENabled when NDEBUG is undefined.
35: * For speed NDEBUG is defined so assert()'s are left out.
36: #undef NDEBUG
37: */
38: #define NDEBUG
39:
40: /*
41: * For speed SUSPECT is undefined.
42: #define SUSPECT
43: */
44: #undef SUSPECT
45:
46: /* These #imports are for type definitions etc. */
47: #import <stdio.h>
48: #import <assert.h>
49: #import <mach/machine.h>
50:
51: /* These defines are potentially useful */
52: #undef FALSE
53: #define FALSE (0)
54: #undef TRUE
55: #define TRUE (!FALSE)
56: #define ASSERT assert
57:
58: #define BAD_CASE(value) \
59: { \
60: as_fatal ("Case value %d unexpected at line %d of file \"%s\"\n", \
61: value, __LINE__, __FILE__); \
62: }
63:
64: /* These are assembler-wide concepts */
65: #ifdef SUSPECT
66: #define register /* no registers: helps debugging */
67: #define know(p) ASSERT(p) /* know() is less ugly than #ifdef SUSPECT/ */
68: /* assert()/#endif. */
69: #else
70: #define know(p) /* know() checks are no-op.ed */
71: #endif
72:
73:
74: /*
75: * main program "as.c" (command arguments etc)
76: */
77:
78: /* ['x'] TRUE if "-x" seen. */
79: extern char flagseen[128];
80:
81: /* name of emitted object file, argument to -o if specified */
82: extern char *out_file_name;
83:
84: /* TRUE if -force_cpusubtype_ALL is specified */
85: extern int force_cpusubtype_ALL;
86:
87: /* set to the corresponding cpusubtype if -arch flag is specified */
88: extern cpu_subtype_t archflag_cpusubtype;
89:
90: /* -I path options for .includes */
91: struct directory_stack {
92: struct directory_stack *next;
93: char *fname;
94: };
95: extern struct directory_stack include_defaults[];
96: extern struct directory_stack *include;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.