AVR: CC0 to CCmode conversion

Richard Henderson rth@redhat.com
Sun Mar 20 19:26:00 GMT 2005


On Sun, Mar 20, 2005 at 01:59:44PM +0300, Denis Chertykov wrote:
> The reload will generate addhi3 and reload will have a problem with
> two modified regs (ZCMP_FLAGS, CARRY_FLAGS) which will be a bad
> surprise for reload. :( As I remember.

In order to expose the flags register before reload, you *must*
have load, store, reg-reg move, and add operations that do not
modify the flags.

Note, for instance, that i386 "add" instruction always modifies
the flags, but the "lea" instruction does not.  So we emit the
later when reload emits an add.

If you cannot meet these requirements, then you must represent
"setcc" and "compare-and-branch" patterns as a single insn until
after reload.  You can then split them apart, followed by peep2
patterns to remove compare patterns that are redundant with
immediately preceeding arithmetic.


r~



More information about the Gcc mailing list