[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