[m68k] Fix and improve ColdFire function prologue/epilogue generation (respin)

Andreas Schwab schwab@suse.de
Mon Sep 8 20:43:00 GMT 2003


Bernardo Innocenti <bernie@develer.com> writes:

> Another odd thing about EH problems. The m68k backend defines this
> macro:
>
>  /* Describe how we implement __builtin_eh_return.  */
>  #define EH_RETURN_DATA_REGNO(N) \
>    ((N) < 2 ? (N) : INVALID_REGNUM)
>
>
> But docs I've read explicitly say that it must _NOT_ use scratch
> registers:

Were did you read that?

`EH_RETURN_DATA_REGNO (N)'
     A C expression whose value is the Nth register number used for
     data by exception handlers, or `INVALID_REGNUM' if fewer than N
     registers are usable.

     The exception handling library routines communicate with the
     exception handlers via a set of agreed upon registers.  Ideally
     these registers should be call-clobbered; it is possible to use
     call-saved registers, but may negatively impact code size.  The
     target must support at least 2 data registers, but should define 4
     if there are enough free registers.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



More information about the Gcc-patches mailing list