This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
ix86_avoid_jump_misspredicts use "align" pattern to pad to a 16byte
boundary. "align" pattern uses ASM_OUTPUT_MAX_SKIP_ALIGN. For Linux,
it
See my http://gcc.gnu.org/ml/gcc-patches/2009-05/msg00702.html patch, I think ASM_OUTPUT_MAX_SKIP_ALIGN should be fixed anyway to not do the extra .p2align 3 if MAX_SKIP is less than 7. ASM_OUTPUT_MAX_SKIP_PAD doesn't hurt, though I think it only rarely will make a difference. ïAnyway, I think it makes no sense to require it duplicated in all the headers, just define the new macro in linux.h and x86-64.h and in i386.md just use ASM_OUTPUT_MAX_SKIP_PAD if it exists, otherwise fall back to ASM_OUTPUT_MAX_SKIP_ALIGN.
Here is the updated patch. OK for trunk?
2009-05-15 H.J. Lu <hongjiu.lu@intel.com>
PR target/39942 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace gen_align with gen_pad.
* config/i386/i386.md (align): Renamed to ... (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with ASM_OUTPUT_MAX_SKIP_PAD.
* config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
+#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN +#undef ASM_OUTPUT_MAX_SKIP_PAD +#define ASM_OUTPUT_MAX_SKIP_PAD(FILE, LOG, MAX_SKIP) \ + if ((LOG) != 0) { \ + if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \ + else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \ + }
Thanks, Uros.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |