predicates.md (const_m255_to_m1_operand): New.
authorGeorg-Johann Lay <avr@gjlay.de>
Fri, 15 Jul 2016 16:25:38 +0000 (16:25 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Fri, 15 Jul 2016 16:25:38 +0000 (16:25 +0000)
commitbe88b0c7819ecf82f4020ab037cba99c5b0e99ad
treebcd5d773d7bef7e04623303af8ec0ccb16ada3e8
parent5eed9a887bb0bcccc6d8298609423bf917932964
predicates.md (const_m255_to_m1_operand): New.

* config/avr/predicates.md (const_m255_to_m1_operand): New.
* config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
* config/avr/avr.md (add<mode>3) <ALL1>: Make "r,0,r" more
expensive.
(*cmphi.zero-extend.0, *cmphi.zero-extend.1)
(*usum_widenqihi3, *udiff_widenqihi3)
(*addhi3_zero_extend.const): New combiner insns.
(andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
just 1 bit is affected.
* config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
(avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.

From-SVN: r238381
gcc/ChangeLog
gcc/config/avr/avr.c
gcc/config/avr/avr.md
gcc/config/avr/constraints.md
gcc/config/avr/predicates.md