OSDN Git Service

* config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use
authorzippel <zippel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Sep 2007 21:07:08 +0000 (21:07 +0000)
committerzippel <zippel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Sep 2007 21:07:08 +0000 (21:07 +0000)
"move.l %a4,%a4" to produce nops.
* config/m68k/m68k.c (override_options): Reset align options,
if neccessary align macro isn't avaible.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128730 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/m68k/linux.h
gcc/config/m68k/m68k.c

index 882fa77..c1376d4 100644 (file)
@@ -1,5 +1,12 @@
 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
 
+       * config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use
+       "move.l %a4,%a4" to produce nops.
+       * config/m68k/m68k.c (override_options): Reset align options,
+       if neccessary align macro isn't avaible.
+
+2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
+
        config/m68k/linux.h (PREFERRED_STACK_BOUNDARY): New.
 
 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
index 1e1d07c..2eb4641 100644 (file)
@@ -126,6 +126,13 @@ along with GCC; see the file COPYING3.  If not see
   if ((LOG) > 0)                                               \
     fprintf ((FILE), "%s%u\n", ALIGN_ASM_OP, 1 << (LOG));
 
+#ifdef HAVE_GAS_BALIGN_AND_P2ALIGN
+/* Use "move.l %a4,%a4" to advance within code.  */
+#define ASM_OUTPUT_ALIGN_WITH_NOP(FILE,LOG)                    \
+  if ((LOG) > 0)                                               \
+    fprintf ((FILE), "\t.balignw %u,0x284c\n", 1 << (LOG));
+#endif
+
 /* If defined, a C expression whose value is a string containing the
    assembler operation to identify the following data as uninitialized global
    data.  */
index 1df869f..d2b023f 100644 (file)
@@ -618,6 +618,19 @@ override_options (void)
       gcc_unreachable ();
     }
 
+#ifndef ASM_OUTPUT_ALIGN_WITH_NOP
+  if (align_labels > 2)
+    {
+      warning (0, "-falign-labels=%d is not supported", align_labels);
+      align_labels = 0;
+    }
+  if (align_loops > 2)
+    {
+      warning (0, "-falign-loops=%d is not supported", align_loops);
+      align_loops = 0;
+    }
+#endif
+
   SUBTARGET_OVERRIDE_OPTIONS;
 
   /* Setup scheduling options.  */