aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/m68k
diff options
context:
space:
mode:
authorRoman Zippel <zippel@linux-m68k.org>2007-09-24 21:07:08 +0000
committerRoman Zippel <zippel@gcc.gnu.org>2007-09-24 21:07:08 +0000
commitaaca7021ce5e44c2bf54cc88ead40688ebb419c1 (patch)
tree4223d4af7a00301e6d6188fee4d95a8a2699e069 /gcc/config/m68k
parentbd7993c83c1716e191b5788e8fa54454c49ef1bf (diff)
downloadgcc-aaca7021ce5e44c2bf54cc88ead40688ebb419c1.zip
gcc-aaca7021ce5e44c2bf54cc88ead40688ebb419c1.tar.gz
gcc-aaca7021ce5e44c2bf54cc88ead40688ebb419c1.tar.bz2
m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use "move.l %a4,%a4" to produce nops.
* 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. From-SVN: r128730
Diffstat (limited to 'gcc/config/m68k')
-rw-r--r--gcc/config/m68k/linux.h7
-rw-r--r--gcc/config/m68k/m68k.c13
2 files changed, 20 insertions, 0 deletions
diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h
index 1e1d07c..2eb4641 100644
--- a/gcc/config/m68k/linux.h
+++ b/gcc/config/m68k/linux.h
@@ -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. */
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 1df869f..d2b023f 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -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. */