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: [m68k] Fix m68k-netbsdelf bootstrap


Gunther Nikl wrote:

A quick look at gas/config/tc-m68k.c reveals fp is hardly
bound to a6.

m68k-amigaos modifies GAS and binds %fp to %a5, thus your M68K_REGNAME macro would work.

Ok. I suppose any other target that redefines %fp would need such thing.

#if FRAME_POINTER_REGNUM == 14
 /* Return a register name by index, handling fp nicely.  */
# define M68K_REGNAME(r) ( \
   ((r) == FRAME_POINTER_REGNUM && frame_pointer_needed) ? \
     M68K_FP_REG_NAME : reg_names[(r)])
#else
 /* GAS and possibly other assemblers hard-code fp to a6.  */
# define M68K_REGNAME(r) reg_names[(r)]
#endif

This does only work if FRAME_POINTER_REGNUM is defined correctly before, eg. in config.gcc. However, since FRAME_POINTER_REGNUM is a compile-time constant you could move the check into the macro definition to get the same result :-)

No, it would work even if FRAME_POINTER_REGNUM is defined later, for the same reason Andreas' earlier patch works: the C preprocessor expands nested macros lazily, not at definition time.

--
 // Bernardo Innocenti - Develer S.r.l., R&D dept.
\X/  http://www.develer.com/



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