bsd.h revision 117395
1178476Sjb/* Definitions for BSD assembler syntax for Intel 386
2178476Sjb   (actually AT&T syntax for insns and operands,
3178476Sjb   adapted to BSD conventions for symbol names and debugging.)
4178476Sjb   Copyright (C) 1988, 1996, 2000, 2002 Free Software Foundation, Inc.
5178476Sjb
6178476SjbThis file is part of GNU CC.
7178476Sjb
8178476SjbGNU CC is free software; you can redistribute it and/or modify
9178476Sjbit under the terms of the GNU General Public License as published by
10178476Sjbthe Free Software Foundation; either version 2, or (at your option)
11178476Sjbany later version.
12178476Sjb
13178476SjbGNU CC is distributed in the hope that it will be useful,
14178476Sjbbut WITHOUT ANY WARRANTY; without even the implied warranty of
15178476SjbMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16178476SjbGNU General Public License for more details.
17178476Sjb
18178476SjbYou should have received a copy of the GNU General Public License
19178476Sjbalong with GNU CC; see the file COPYING.  If not, write to
20178476Sjbthe Free Software Foundation, 59 Temple Place - Suite 330,
21178476SjbBoston, MA 02111-1307, USA.  */
22178476Sjb
23178476Sjb/* Use the Sequent Symmetry assembler syntax.  */
24178476Sjb
25178476Sjb/* Define the syntax of pseudo-ops, labels and comments.  */
26178476Sjb
27178476Sjb/* Prefix for internally generated assembler labels.  If we aren't using
28178476Sjb   underscores, we are using prefix `.'s to identify labels that should
29178476Sjb   be ignored, as in `i386/gas.h' --karl@cs.umb.edu  */
30178476Sjb
31178476Sjb#define LPREFIX "L"
32178476Sjb
33178476Sjb/* Assembler pseudos to introduce constants of various size.  */
34178476Sjb
35178476Sjb#define ASM_SHORT "\t.word\t"
36178476Sjb#define ASM_LONG "\t.long\t"
37178476Sjb#define ASM_QUAD "\t.quad\t"  /* Should not be used for 32bit compilation.  */
38178476Sjb
39178476Sjb/* Output at beginning of assembler file.
40178476Sjb   ??? I am skeptical of this -- RMS.  */
41178476Sjb
42178476Sjb#define ASM_FILE_START(FILE) \
43178476Sjb  do {	output_file_directive (FILE, main_input_filename);	\
44178476Sjb  } while (0)
45178476Sjb
46178476Sjb/* This was suggested, but it shouldn't be right for DBX output. -- RMS
47178476Sjb   #define ASM_OUTPUT_SOURCE_FILENAME(FILE, NAME) */
48178476Sjb
49178476Sjb
50178476Sjb/* Define the syntax of labels and symbol definitions/declarations.  */
51178476Sjb
52178476Sjb/* This is how to output an assembler line
53178476Sjb   that says to advance the location counter by SIZE bytes.  */
54178476Sjb
55178476Sjb#define ASM_OUTPUT_SKIP(FILE,SIZE)  \
56178476Sjb  fprintf (FILE, "\t.space %u\n", (SIZE))
57178476Sjb
58178476Sjb/* Define the syntax of labels and symbol definitions/declarations.  */
59178476Sjb
60178476Sjb/* This says how to output an assembler line
61178476Sjb   to define a global common symbol.  */
62178476Sjb
63178476Sjb#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED)  \
64178476Sjb( fputs (".comm ", (FILE)),			\
65178476Sjb  assemble_name ((FILE), (NAME)),		\
66178476Sjb  fprintf ((FILE), ",%u\n", (ROUNDED)))
67178476Sjb
68178476Sjb/* This says how to output an assembler line
69178476Sjb   to define a local common symbol.  */
70178476Sjb
71178476Sjb#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED)  \
72178476Sjb( fputs (".lcomm ", (FILE)),			\
73178476Sjb  assemble_name ((FILE), (NAME)),		\
74178476Sjb  fprintf ((FILE), ",%u\n", (ROUNDED)))
75178476Sjb
76178476Sjb/* This is how to output an assembler line
77178476Sjb   that says to advance the location counter
78178476Sjb   to a multiple of 2**LOG bytes.  */
79178476Sjb
80#define ASM_OUTPUT_ALIGN(FILE,LOG)	\
81  if ((LOG)!=0) fprintf ((FILE), "\t.align %d\n", (LOG))
82
83/* This is how to store into the string BUF
84   the symbol_ref name of an internal numbered label where
85   PREFIX is the class of label and NUM is the number within the class.
86   This is suitable for output with `assemble_name'.  */
87
88#define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER)	\
89    sprintf ((BUF), "*%s%ld", (PREFIX), (long)(NUMBER))
90
91/* This is how to output an internal numbered label where
92   PREFIX is the class of label and NUM is the number within the class.  */
93
94#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
95  fprintf (FILE, "%s%d:\n", PREFIX, NUM)
96
97/* The prefix to add to user-visible assembler symbols.  */
98
99#define USER_LABEL_PREFIX "_"
100
101/* Sequent has some changes in the format of DBX symbols.  */
102#define DBX_NO_XREFS 1
103
104/* Don't split DBX symbols into continuations.  */
105#define DBX_CONTIN_LENGTH 0
106