This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: AVR: CC0 to CCmode conversion


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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]