Paolo Bonzini <[EMAIL PROTECTED]> 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