]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/i386/x86-64.h
testsuite/c-c++-common/cpp/pragma-eof.c: Add missing require fopenmp
[thirdparty/gcc.git] / gcc / config / i386 / x86-64.h
CommitLineData
14f73b5a 1/* OS independent definitions for AMD x86-64.
8d9254fc 2 Copyright (C) 2001-2020 Free Software Foundation, Inc.
14f73b5a
JH
3 Contributed by Bo Thorsen <bo@suse.de>.
4
48ff03c7 5This file is part of GCC.
14f73b5a 6
48ff03c7 7GCC is free software; you can redistribute it and/or modify
14f73b5a 8it under the terms of the GNU General Public License as published by
2f83c7d6 9the Free Software Foundation; either version 3, or (at your option)
14f73b5a
JH
10any later version.
11
48ff03c7 12GCC is distributed in the hope that it will be useful,
14f73b5a
JH
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
748086b7
JJ
17Under Section 7 of GPL version 3, you are granted additional
18permissions described in the GCC Runtime Library Exception, version
193.1, as published by the Free Software Foundation.
20
21You should have received a copy of the GNU General Public License and
22a copy of the GCC Runtime Library Exception along with this program;
23see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
2f83c7d6 24<http://www.gnu.org/licenses/>. */
14f73b5a 25
14f73b5a
JH
26#undef ASM_COMMENT_START
27#define ASM_COMMENT_START "#"
28
14f73b5a
JH
29#undef DBX_REGISTER_NUMBER
30#define DBX_REGISTER_NUMBER(n) \
31 (TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
32
33/* Output assembler code to FILE to call the profiler. */
ff4cb2e7 34#define NO_PROFILE_COUNTERS 1
14f73b5a 35
a5fa1ecd 36#undef MCOUNT_NAME
5dab517f 37#define MCOUNT_NAME "mcount"
14f73b5a
JH
38
39#undef SIZE_TYPE
3ee7be4c 40#define SIZE_TYPE (TARGET_LP64 ? "long unsigned int" : "unsigned int")
14f73b5a
JH
41
42#undef PTRDIFF_TYPE
3ee7be4c 43#define PTRDIFF_TYPE (TARGET_LP64 ? "long int" : "int")
14f73b5a
JH
44
45#undef WCHAR_TYPE
46#define WCHAR_TYPE "int"
47
48#undef WCHAR_TYPE_SIZE
49#define WCHAR_TYPE_SIZE 32
50
14f73b5a 51#undef ASM_SPEC
a2cb05ed 52#define ASM_SPEC "%{m16|m32:--32} %{m64:--64} %{mx32:--x32}"
14f73b5a 53
eb2b0cc0 54#undef ASM_OUTPUT_ALIGNED_BSS
14f73b5a 55#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
7dcbf659
JH
56 x86_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
57
901f29c8
RO
58#undef ASM_OUTPUT_ALIGNED_DECL_COMMON
59#define ASM_OUTPUT_ALIGNED_DECL_COMMON(FILE, DECL, NAME, SIZE, ALIGN) \
60 x86_elf_aligned_decl_common (FILE, DECL, NAME, SIZE, ALIGN);
14f73b5a 61
48ff03c7 62/* This is used to align code labels according to Intel recommendations. */
14f73b5a 63
dd047c67
DV
64#define SUBALIGN_LOG 3
65
1651a990 66#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
14f73b5a
JH
67#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
68 do { \
69 if ((LOG) != 0) { \
dd047c67
DV
70 if ((MAX_SKIP) == 0 || (MAX_SKIP) >= (1 << (LOG)) - 1) \
71 fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
72 else \
461a73b5 73 fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
14f73b5a
JH
74 } \
75 } while (0)
6a90d232
L
76#undef ASM_OUTPUT_MAX_SKIP_PAD
77#define ASM_OUTPUT_MAX_SKIP_PAD(FILE, LOG, MAX_SKIP) \
78 if ((LOG) != 0) \
79 { \
3f1a2e57 80 if ((MAX_SKIP) == 0 || (MAX_SKIP) >= (1 << (LOG)) - 1) \
6a90d232
L
81 fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
82 else \
83 fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
84 }
1651a990 85#endif
14f73b5a
JH
86
87
88/* i386 System V Release 4 uses DWARF debugging info.
89 x86-64 ABI specifies DWARF2. */
90
23532de9 91#define DWARF2_DEBUGGING_INFO 1
14f73b5a 92#define DWARF2_UNWIND_INFO 1
14f73b5a
JH
93
94#undef PREFERRED_DEBUGGING_TYPE
95#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
7dcbf659
JH
96
97#undef TARGET_ASM_SELECT_SECTION
98#define TARGET_ASM_SELECT_SECTION x86_64_elf_select_section
99
100#undef TARGET_ASM_UNIQUE_SECTION
101#define TARGET_ASM_UNIQUE_SECTION x86_64_elf_unique_section
520a5868
JJ
102
103#undef TARGET_SECTION_TYPE_FLAGS
104#define TARGET_SECTION_TYPE_FLAGS x86_64_elf_section_type_flags