Mercurial > hg > CbC > CbC_gcc
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 |