]>
Commit | Line | Data |
---|---|---|
ac075f04 CH |
1 | /* Definitions for BSD assembler syntax for Intel 386 |
2 | (actually AT&T syntax for insns and operands, | |
3 | adapted to BSD conventions for symbol names and debugging.) | |
a5544970 | 4 | Copyright (C) 1988-2019 Free Software Foundation, Inc. |
ac075f04 | 5 | |
e20285ad | 6 | This file is part of GCC. |
ac075f04 | 7 | |
e20285ad | 8 | GCC is free software; you can redistribute it and/or modify |
ac075f04 | 9 | it under the terms of the GNU General Public License as published by |
2f83c7d6 | 10 | the Free Software Foundation; either version 3, or (at your option) |
ac075f04 CH |
11 | any later version. |
12 | ||
e20285ad | 13 | GCC is distributed in the hope that it will be useful, |
ac075f04 CH |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | GNU General Public License for more details. | |
17 | ||
18 | You should have received a copy of the GNU General Public License | |
2f83c7d6 NC |
19 | along with GCC; see the file COPYING3. If not see |
20 | <http://www.gnu.org/licenses/>. */ | |
ac075f04 | 21 | |
ac075f04 | 22 | /* Use the Sequent Symmetry assembler syntax. */ |
ac075f04 CH |
23 | \f |
24 | /* Define the syntax of pseudo-ops, labels and comments. */ | |
25 | ||
99f60f84 RK |
26 | /* Prefix for internally generated assembler labels. If we aren't using |
27 | underscores, we are using prefix `.'s to identify labels that should | |
3ad6cbb6 | 28 | be ignored, as in `i386/gas.h' --karl@cs.umb.edu */ |
39ed301b | 29 | |
ac075f04 CH |
30 | #define LPREFIX "L" |
31 | ||
32 | /* Assembler pseudos to introduce constants of various size. */ | |
33 | ||
e61c6562 | 34 | #define ASM_BYTE "\t.byte\t" |
79b79064 RH |
35 | #define ASM_SHORT "\t.word\t" |
36 | #define ASM_LONG "\t.long\t" | |
d39ac0fd | 37 | #define ASM_QUAD "\t.quad\t" /* Should not be used for 32bit compilation. */ |
ac075f04 | 38 | |
ac075f04 CH |
39 | /* This was suggested, but it shouldn't be right for DBX output. -- RMS |
40 | #define ASM_OUTPUT_SOURCE_FILENAME(FILE, NAME) */ | |
41 | ||
42 | \f | |
43 | /* Define the syntax of labels and symbol definitions/declarations. */ | |
44 | ||
45 | /* This is how to output an assembler line | |
46 | that says to advance the location counter by SIZE bytes. */ | |
47 | ||
48 | #define ASM_OUTPUT_SKIP(FILE,SIZE) \ | |
16998094 | 49 | fprintf (FILE, "\t.space " HOST_WIDE_INT_PRINT_UNSIGNED"\n", (SIZE)) |
ac075f04 CH |
50 | \f |
51 | /* Define the syntax of labels and symbol definitions/declarations. */ | |
52 | ||
53 | /* This says how to output an assembler line | |
54 | to define a global common symbol. */ | |
55 | ||
56 | #define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \ | |
57 | ( fputs (".comm ", (FILE)), \ | |
58 | assemble_name ((FILE), (NAME)), \ | |
58e15542 | 59 | fprintf ((FILE), ",%u\n", (int)(ROUNDED))) |
ac075f04 CH |
60 | |
61 | /* This says how to output an assembler line | |
62 | to define a local common symbol. */ | |
63 | ||
64 | #define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \ | |
65 | ( fputs (".lcomm ", (FILE)), \ | |
66 | assemble_name ((FILE), (NAME)), \ | |
58e15542 | 67 | fprintf ((FILE), ",%u\n", (int)(ROUNDED))) |
ac075f04 | 68 | |
28e6bb13 NC |
69 | #ifdef HAVE_GAS_LCOMM_WITH_ALIGNMENT |
70 | #define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGNMENT) \ | |
71 | ( fputs (".lcomm ", (FILE)), \ | |
72 | assemble_name ((FILE), (NAME)), \ | |
73 | fprintf ((FILE), ",%u,%u\n", (int)(SIZE), (int)(ALIGNMENT) / BITS_PER_UNIT)) | |
74 | #endif | |
75 | ||
ac075f04 CH |
76 | /* This is how to output an assembler line |
77 | that says to advance the location counter | |
78 | to a multiple of 2**LOG bytes. */ | |
79 | ||
80 | #define ASM_OUTPUT_ALIGN(FILE,LOG) \ | |
2a00acf0 | 81 | if ((LOG)!=0) fprintf ((FILE), "\t.align %d\n", (LOG)) |
ac075f04 CH |
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) \ | |
e59f7d3d | 89 | sprintf ((BUF), "*%s%ld", (PREFIX), (long)(NUMBER)) |
ac075f04 | 90 | |
892a2d68 | 91 | /* The prefix to add to user-visible assembler symbols. */ |
ac075f04 | 92 | |
66dae892 | 93 | #define USER_LABEL_PREFIX "_" |
ac075f04 CH |
94 | |
95 | /* Sequent has some changes in the format of DBX symbols. */ | |
96 | #define DBX_NO_XREFS 1 | |
97 | ||
98 | /* Don't split DBX symbols into continuations. */ | |
99 | #define DBX_CONTIN_LENGTH 0 |