This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Do not align labels for jump tables


Mark Mitchell wrote:
Andreas Schwab wrote:

The only change since that point was to add a condition to the
testcase to make it pass on 68K/fido; those CPUs do not support
-falign-labels=8.

In which way do they not support it?

I've amended the testcase because of the following in m68k.c: override_options():


#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

ASM_OUTPUT_ALIGN_WITH_NOP is defined in linux.h, so bare-metal m68k and fido issue a warning.

Now comes the interesting part: I've just checked the commit log of revision that added the code above, and it appears that definition of the macro was intended to go to m68k.h, not linux.h (rev. 128730):

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.

Roman, have you accidentally committed the hunk to the wrong file?

The definition of ASM_OUTPUT_ALIGN_WITH_NOP seems OK to me to be moved to m68k.h hence fixing the underlying problem.

Mark, it seems I was deceived by the code and the falign-labels-1.c testcase should not exclude m68k and fido from the testing.

--
Maxim


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]