comparison gcc/config/i386/x86-64.h @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 /* OS independent definitions for AMD x86-64. 1 /* OS independent definitions for AMD x86-64.
2 Copyright (C) 2001-2017 Free Software Foundation, Inc. 2 Copyright (C) 2001-2018 Free Software Foundation, Inc.
3 Contributed by Bo Thorsen <bo@suse.de>. 3 Contributed by Bo Thorsen <bo@suse.de>.
4 4
5 This file is part of GCC. 5 This file is part of GCC.
6 6
7 GCC is free software; you can redistribute it and/or modify 7 GCC is free software; you can redistribute it and/or modify
59 #define ASM_OUTPUT_ALIGNED_DECL_COMMON(FILE, DECL, NAME, SIZE, ALIGN) \ 59 #define ASM_OUTPUT_ALIGNED_DECL_COMMON(FILE, DECL, NAME, SIZE, ALIGN) \
60 x86_elf_aligned_decl_common (FILE, DECL, NAME, SIZE, ALIGN); 60 x86_elf_aligned_decl_common (FILE, DECL, NAME, SIZE, ALIGN);
61 61
62 /* This is used to align code labels according to Intel recommendations. */ 62 /* This is used to align code labels according to Intel recommendations. */
63 63
64 #define SUBALIGN_LOG 3
65
64 #ifdef HAVE_GAS_MAX_SKIP_P2ALIGN 66 #ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
65 #define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \ 67 #define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
66 do { \ 68 do { \
67 if ((LOG) != 0) { \ 69 if ((LOG) != 0) { \
68 if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \ 70 if ((MAX_SKIP) == 0 || (MAX_SKIP) >= (1 << (LOG)) - 1) \
69 else { \ 71 fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
72 else \
70 fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \ 73 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. */ \
73 if ((LOG) > 3 \
74 && (1 << (LOG)) > ((MAX_SKIP) + 1) \
75 && (MAX_SKIP) >= 7) \
76 fputs ("\t.p2align 3\n", (FILE)); \
77 } \
78 } \ 74 } \
79 } while (0) 75 } while (0)
80 #undef ASM_OUTPUT_MAX_SKIP_PAD 76 #undef ASM_OUTPUT_MAX_SKIP_PAD
81 #define ASM_OUTPUT_MAX_SKIP_PAD(FILE, LOG, MAX_SKIP) \ 77 #define ASM_OUTPUT_MAX_SKIP_PAD(FILE, LOG, MAX_SKIP) \
82 if ((LOG) != 0) \ 78 if ((LOG) != 0) \
83 { \ 79 { \
84 if ((MAX_SKIP) == 0) \ 80 if ((MAX_SKIP) == 0 || (MAX_SKIP) >= (1 << (LOG)) - 1) \
85 fprintf ((FILE), "\t.p2align %d\n", (LOG)); \ 81 fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
86 else \ 82 else \
87 fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \ 83 fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
88 } 84 }
89 #endif 85 #endif