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: Michael Matz <matz at suse dot de>
- To: Alexandre Oliva <aoliva at redhat dot com>
- Cc: Joern Rennecke <joern dot rennecke at superh dot com>,Daniel Berlin <dberlin at dberlin dot org>,Herman ten Brugge <hermantenbrugge at home dot nl>,Dale Johannesen <dalej at apple dot com>, <gcc at gcc dot gnu dot org>
- Date: Thu, 15 May 2003 13:36:48 +0200 (CEST)
- Subject: Re: new register allocator and HARD_REGNO_CALL_PART_CLOBBERED
Hi,
On 15 May 2003, Alexandre Oliva wrote:
> It is not insane. It makes a lot of sense when you extend an
> architecture's register width but maintain the ABI unchanged, such
> that existing object or assembly code developed for the old
> architecture will still work correctly in the new one, even if linked
> with code that takes advantage of the features of the new
> architecture. The old code couldn't possibly preserve say the most
> significant 32-bits of a 64-bit register if the register was only
> 32-bits wide when it was written.
Sure. But then I would explicitely add the necessary clobbers (of
subregs) to the call instructions, explicitely stating what happens,
namely that some register parts will be destroyed, instead of an
abstraction like HARD_REGNO_CALL_PART_CLOBBERED. At least for clobbers
which can change per call.
Ciao,
Michael.