This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: new register allocator and HARD_REGNO_CALL_PART_CLOBBERED
- From: Joern Rennecke <joern dot rennecke at superh dot com>
- To: Dale Johannesen <dalej at apple dot com>
- Cc: Michael Matz <matz at suse dot de>, Daniel Berlin <dberlin at dberlin dot org>, Herman ten Brugge <hermantenbrugge at home dot nl>, gcc at gcc dot gnu dot org
- Date: Wed, 14 May 2003 18:27:41 +0100
- Subject: Re: new register allocator and HARD_REGNO_CALL_PART_CLOBBERED
- Organization: SuperH UK Ltd.
- References: <AE279C88-862E-11D7-BAEF-000393D76DAA@apple.com>
Dale Johannesen wrote:
> I think some ports have this, for example there are a number of libcalls
> in HPUX (IIRC) that use nonstandard calling conventions. Don't know how
> gcc deals with these (or if it does), or whether this can occur in
> combination with HARD_REGNO_CALL_PART_CLOBBERED.
Yes, the SH also has a number of libcalls with special sets of registers
that are clobbered, but these are not actually represented as CALL_INSNs,
but as INSN patterns, with explicit clobbers for the registers that are
being clobbered (which are a small subset of the ordinarily call clobbered
registers), and supported by appropriate definitions for the SETS / REFERENCES_ARE_DELAYED macros.
I have not heard of any instances where such a special libcall clobbers
only a part a register so that a limited set of modes could still be used,
not to speak of the port actually wanting to advertise such a fact.
At any rate, HARD_REGNO_CALL_PART_CLOBBERED applies only if you actually
have a CALL_INSN.
--
--------------------------
SuperH (UK) Ltd.
2410 Aztec West / Almondsbury / BRISTOL / BS32 4QX
T:+44 1454 465658