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: How to implement efficiently builtins for dual-result instructions ?


Paolo Bonzini <bonzini@gnu.org> writes:

> >  In the response of Paolo I also don't understand how the DI pseudo could be
> >  mapped on two consecutive SI regs. I think gcc always  will map a multiword
> > pseudo on consecutive word-size regs. Am I wrong here ?
> 
> Oops, I forgot a part.  In the RTL description don't write
> 
>    [(set (match_operand:DI 0 "register_operand")
>          (unspec [...] SUPER_LD32))]
> 
> but
> 
>    [(set (subreg:SI (match_operand:DI 0 "register_operand") 0)
>          (unspec [...] SUPER_LD32_LO))
>     (set (subreg:SI (match_operand:DI 0 "register_operand") 4)
>          (unspec [...] SUPER_LD32_HI))]

And you have to be working with mainline gcc--the lower-subreg pass is
new with gcc 4.3.

Ian


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