This is the mail archive of the gcc@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: new register allocator and HARD_REGNO_CALL_PART_CLOBBERED


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


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