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))]

Paolo

Reply via email to