]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/i386/x86-64.h
predicates.md (ext_sse_reg_operand): New.
[thirdparty/gcc.git] / gcc / config / i386 / x86-64.h
CommitLineData
14f73b5a 1/* OS independent definitions for AMD x86-64.
d1e082c2 2 Copyright (C) 2001-2013 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
0db63e7f 52#define ASM_SPEC "%{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
58#undef ASM_OUTPUT_ALIGNED_COMMON
59#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
60 x86_elf_aligned_common (FILE, NAME, SIZE, ALIGN);
14f73b5a 61
48ff03c7 62/* This is used to align code labels according to Intel recommendations. */
14f73b5a 63
1651a990 64#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
14f73b5a
JH
65#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
66 do { \
67 if ((LOG) != 0) { \
68 if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
461a73b5
L
69 else { \
70 fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
71 /* Make sure that we have at least 8 byte alignment if > 8 byte \
72 alignment is preferred. */ \
a99c6711
JJ
73 if ((LOG) > 3 \
74 && (1 << (LOG)) > ((MAX_SKIP) + 1) \
75 && (MAX_SKIP) >= 7) \
87da3843 76 fputs ("\t.p2align 3\n", (FILE)); \
461a73b5 77 } \
14f73b5a
JH
78 } \
79 } while (0)
6a90d232
L
80#undef ASM_OUTPUT_MAX_SKIP_PAD
81#define ASM_OUTPUT_MAX_SKIP_PAD(FILE, LOG, MAX_SKIP) \
82 if ((LOG) != 0) \
83 { \
84 if ((MAX_SKIP) == 0) \
85 fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
86 else \
87 fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
88 }
1651a990 89#endif
14f73b5a
JH
90
91
92/* i386 System V Release 4 uses DWARF debugging info.
93 x86-64 ABI specifies DWARF2. */
94
23532de9 95#define DWARF2_DEBUGGING_INFO 1
14f73b5a 96#define DWARF2_UNWIND_INFO 1
14f73b5a
JH
97
98#undef PREFERRED_DEBUGGING_TYPE
99#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
7dcbf659
JH
100
101#undef TARGET_ASM_SELECT_SECTION
102#define TARGET_ASM_SELECT_SECTION x86_64_elf_select_section
103
104#undef TARGET_ASM_UNIQUE_SECTION
105#define TARGET_ASM_UNIQUE_SECTION x86_64_elf_unique_section