register allocation in gcc

Paulo J. Matos paulo@matos-sorge.com
Tue Oct 18 08:35:00 GMT 2011


On 18/10/11 08:06, vikramsp wrote:
>
> In my .md file there is an insn
> (define_insn abssf2
>        ....
>        ....
>       (clobber (match_scratch 2 ""))
>
> the %2 register is allocated as r0 in the real code.
> My problem is that i want other than r0 to be allocated
> for operand 2.
> Please help how to do that.

In the "" after the 2 comes the constraint list. Constrain the register 
to be somewhere that doesn't include r0.

So, for example, define a constraint x that corresponds to a register 
class that doesn't contain r0 and then do:
(define_insn abssf2
        ....
        ....
       (clobber (match_scratch 2 "x"))

-- 
PMatos



More information about the Gcc-help mailing list