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


Bernardo Innocenti <bernie@develer.com> writes:

> Gunther Nikl wrote:
>>>#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.

Not in this case, since the #if expression is evaluated immediately, and
undefined macros are replaced with 0 here.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


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