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: readonly register


In fact my final purpose is to replace $INP by a register bank in order to be able to read several inputs using pipelined instructions (and instruction scheduler). The fixed reg solution will prevent me from doing this. Is there another way to prevent the use of some registers during the reload pass without turning them into fixed register ?

Selim

-----Message d'origine-----
De?: Ian Lance Taylor [mailto:iant@google.com] 
Envoyé?: jeudi 19 janvier 2012 00:17
À?: BELBACHIR Selim
Cc?: gcc@gcc.gnu.org
Objet?: Re: readonly register

BELBACHIR Selim <selim.belbachir@fr.thalesgroup.com> writes:

> I'm trying to support an 'in' instruction which reads a value on a peripheral and writes it into a $INP register.
> The $INP register can be used in almost every insn as input operand (add, sub, mul ...).
> I defined a builting to access the 'in' instruction.
>
> How should I express to gcc that the $INP register can only be 'read' and must never be written?
>
> For the moment, I encounter a problem during IRA pass where some of my 'classic' registers are reloaded into $INP (apparently because I have no register left).

If you have a builtin to access the value, then you should be able to
make it a fixed register.  The register allocator will never try to
allocate a fixed register.

Ian


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