]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/i386/gas.h
rename DBX_REGISTER_NUMBER to DEBUGGER_REGNO
[thirdparty/gcc.git] / gcc / config / i386 / gas.h
CommitLineData
6e9e65c6 1/* Definitions for Intel 386 using GAS.
7adcbafe 2 Copyright (C) 1988-2022 Free Software Foundation, Inc.
c3878c43 3
e20285ad 4This file is part of GCC.
c3878c43 5
e20285ad 6GCC is free software; you can redistribute it and/or modify
c3878c43 7it under the terms of the GNU General Public License as published by
2f83c7d6 8the Free Software Foundation; either version 3, or (at your option)
c3878c43
RS
9any later version.
10
e20285ad 11GCC is distributed in the hope that it will be useful,
c3878c43
RS
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
2f83c7d6
NC
17along with GCC; see the file COPYING3. If not see
18<http://www.gnu.org/licenses/>. */
c3878c43 19
3382566a 20/* Note that i386/seq-gas.h is a GAS configuration that does not use this
892a2d68 21 file. */
c3878c43 22
c3878c43
RS
23/* Use the bsd assembler syntax. */
24/* we need to do this because gas is really a bsd style assembler,
25 * and so doesn't work well this these att-isms:
26 *
27 * ASM_OUTPUT_SKIP is .set .,.+N, which isn't implemented in gas
28 * ASM_OUTPUT_LOCAL is done with .set .,.+N, but that can't be
29 * used to define bss static space
30 *
31 * Next is the question of whether to uses underscores. RMS didn't
32 * like this idea at first, but since it is now obvious that we
33 * need this separate tm file for use with gas, at least to get
ca60bd93 34 * debugging info, I think we should also switch to underscores.
c3878c43
RS
35 * We can keep i386v for real att style output, and the few
36 * people who want both form will have to compile twice.
37 */
38
c3878c43
RS
39/* Output #ident as a .ident. */
40
a8781821
SB
41#undef TARGET_ASM_OUTPUT_IDENT
42#define TARGET_ASM_OUTPUT_IDENT default_asm_output_ident_directive
c3878c43 43
6e9e65c6
DE
44/* In the past there was confusion as to what the argument to .align was
45 in GAS. For the last several years the rule has been this: for a.out
46 file formats that argument is LOG, and for all other file formats the
47 argument is 1<<LOG.
48
49 However, GAS now has .p2align and .balign pseudo-ops so to remove any
50 doubt or guess work, and since this file is used for both a.out and other
51 file formats, we use one of them. */
c3878c43 52
00ccc16d 53#ifdef HAVE_GAS_BALIGN_AND_P2ALIGN
c3878c43 54#undef ASM_OUTPUT_ALIGN
6e9e65c6 55#define ASM_OUTPUT_ALIGN(FILE,LOG) \
dd047c67 56 if ((LOG)!=0) fprintf ((FILE), "\t.balign %d\n", 1 << (LOG))
d45e8c4c 57#endif
c3878c43 58\f
726c68df
RS
59/* A C statement or statements which output an assembler instruction
60 opcode to the stdio stream STREAM. The macro-operand PTR is a
61 variable of type `char *' which points to the opcode name in its
62 "internal" form--the form that is written in the machine description.
63
64 GAS version 1.38.1 doesn't understand the `repz' opcode mnemonic.
65 So use `repe' instead. */
66
95879c72 67#undef ASM_OUTPUT_OPCODE
726c68df
RS
68#define ASM_OUTPUT_OPCODE(STREAM, PTR) \
69{ \
70 if ((PTR)[0] == 'r' \
71 && (PTR)[1] == 'e' \
84d82177 72 && (PTR)[2] == 'p') \
726c68df 73 { \
84d82177
JVA
74 if ((PTR)[3] == 'z') \
75 { \
87da3843 76 fputs ("repe", (STREAM)); \
84d82177
JVA
77 (PTR) += 4; \
78 } \
79 else if ((PTR)[3] == 'n' && (PTR)[4] == 'z') \
80 { \
87da3843 81 fputs ("repne", (STREAM)); \
84d82177
JVA
82 (PTR) += 5; \
83 } \
726c68df 84 } \
95879c72
L
85 else \
86 ASM_OUTPUT_AVX_PREFIX ((STREAM), (PTR)); \
726c68df 87}
56c0e8fa
JVA
88
89/* Define macro used to output shift-double opcodes when the shift
90 count is in %cl. Some assemblers require %cl as an argument;
91 some don't.
92
892a2d68 93 GAS requires the %cl argument, so override i386/unix.h. */
56c0e8fa 94
dedaa36d
SC
95#undef SHIFT_DOUBLE_OMITS_COUNT
96#define SHIFT_DOUBLE_OMITS_COUNT 0
56c0e8fa 97
7e233208
RK
98/* The comment-starter string as GAS expects it. */
99#undef ASM_COMMENT_START
100#define ASM_COMMENT_START "#"
101
1bc7c5b6 102#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true