Peter Barada wrote:
pp_pack.c:2220: error: unable to find a register to spill in class `ADDR_REGS'
pp_pack.c:2220: error: this is the insn:
(insn 5559 5558 5560 694 pp_pack.c:2144 (set (reg:SI 8 %a0 [1421])
        (plus:SI (subreg:SI (reg:QI 1420) 0)
            (const_int -32 [0xffffffe0]))) 121 {*addsi3_5200} (insn_list 5558 
(nil))

You might want to look at CANNOT_CHANGE_MODE_CLASS, which can be used to change how reload handles (subreg:SI (reg:QI)). That might help avoid generating QImode ADDR_REG reloads in the first place.


But if they are generated, then you need second reloads to resolve them as Ian mentioned. There is probably no way to avoid implementing this.

You should also look at MODES_TIEABLE_P, which may also help prevent getting QImode ADDR_REG reloads.

Even if you fix both of these, you will probably still need the secondary reload support for this case.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com

Reply via email to