+2003-06-04 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.md (align): Use ASM_OUTPUT_*ALIGN macros.
+
2003-06-04 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME):
(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")])