From 9ccf96814f9910074e07fc708ca70e40d28ce4c4 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 4 Jun 2003 13:06:34 -0700 Subject: * config/i386/i386.md (align): Use ASM_OUTPUT_*ALIGN macros. From-SVN: r67461 --- gcc/ChangeLog | 4 ++++ gcc/config/i386/i386.md | 12 ++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8fab6e1..68bae44 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-06-04 Richard Henderson + + * config/i386/i386.md (align): Use ASM_OUTPUT_*ALIGN macros. + 2003-06-04 Andrew Pinski * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 65b54ea..6806c7a 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -14279,16 +14279,20 @@ (set_attr "modrm" "0") (set_attr "ppro_uops" "one")]) -;; UNSPEC_VOLATILE is considered to use and clobber all hard registers and -;; all of memory. This blocks insns from being moved across this point. +;; Align to 16-byte boundary, max skip in op0. Used to avoid +;; branch prediction penalty for the third jump in a 16-byte +;; block on K8. (define_insn "align" [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_ALIGN)] "" { -#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN - return ".p2align\t4,,%c0"; +#ifdef ASM_OUTPUT_MAX_SKIP_ALIGN + ASM_OUTPUT_MAX_SKIP_ALIGN (asm_out_file, 4, INTVAL (operands[0])); +#else + ASM_OUTPUT_ALIGN (asm_out_file, 4); #endif + return ""; } [(set_attr "length" "16")]) -- cgit v1.1