x86: Rewrite NOP generation for fill and alignment
[deliverable/binutils-gdb.git] / gas / config / tc-i386.h
index 1250bc25f5fe5a4d814c23629749f2df0855fa80..c7c53bea61a5292369e08bc9e754a3f8eb83edc7 100644 (file)
@@ -205,15 +205,7 @@ if ((n)                                                                    \
     goto around;                                                       \
   }
 
-#define MAX_MEM_FOR_RS_ALIGN_CODE  31
-
-extern void i386_align_code (fragS *, int);
-
-#define HANDLE_ALIGN(fragP)                                            \
-if (fragP->fr_type == rs_align_code)                                   \
-  i386_align_code (fragP, (fragP->fr_next->fr_address                  \
-                          - fragP->fr_address                          \
-                          - fragP->fr_fix));
+#define MAX_MEM_FOR_RS_ALIGN_CODE 4095
 
 void i386_print_statistics (FILE *);
 #define tc_print_statistics i386_print_statistics
@@ -286,6 +278,17 @@ extern void i386_generate_nops (fragS *, char *, offsetT, int);
 #define md_generate_nops(frag, where, amount, control) \
   i386_generate_nops ((frag), (where), (amount), (control))
 
+#define HANDLE_ALIGN(fragP)                                            \
+if (fragP->fr_type == rs_align_code)                                   \
+  {                                                                    \
+    offsetT __count = (fragP->fr_next->fr_address                      \
+                      - fragP->fr_address                              \
+                      - fragP->fr_fix);                                \
+    if (__count > 0 && __count <= MAX_MEM_FOR_RS_ALIGN_CODE)           \
+      md_generate_nops (fragP, fragP->fr_literal + fragP->fr_fix,      \
+                       __count, 0);                                    \
+  }
+
 /* We want .cfi_* pseudo-ops for generating unwind info.  */
 #define TARGET_USE_CFIPOP 1
 
This page took 0.101878 seconds and 4 git commands to generate.