"Paulo J. Matos" <pocma...@gmail.com> writes: > Where the format specifiers b and t choose the top and bottom 16 bits > of each operand. add is a 16bit addition operand and addc takes carry > flag into consideration. Now, there are a lot of simple manipulations > that can be made if I release GCC from always outputting these two > instructions together. However, the problem is expanding an addhi3 > into two QImode add insn (which look the same), one of each outputs > addc instead of add.
Look at add<mode>3_cc in gcc/config/i386/i386.md. Look at how add<dwi>3_doubleword splits to use it. Ian