This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] AVR: rev.2: implement HI/SI logic operations and sign/zero extension by define_insn_and_split instead of define_insn
- From: Denis Chertykov <denisc at overta dot ru>
- To: Denis Chertykov <denisc at overta dot ru>
- Cc: Bjіrn Haase <bjoern dot m dot haase at web dot de>, Andy Hutchinson <HutchinsonAndy at netscape dot net>, marekm at amelek dot gda dot pl, gcc-patches at gcc dot gnu dot org
- Date: 21 Apr 2005 21:10:11 +0400
- Subject: Re: [PATCH] AVR: rev.2: implement HI/SI logic operations and sign/zero extension by define_insn_and_split instead of define_insn
- References: <200504032154.35580.bjoern.m.haase@web.de><200504171118.08169.bjoern.m.haase@web.de><sm1plgsx.fsf@localhost.localdomain>
Denis Chertykov <denisc@overta.ru> writes:
> Björn Haase <bjoern.m.haase@web.de> writes:
>
> > Hello Denis,
> >
> > here is again the patch considering your remarks. I have been able to remove
> > most of the explicit insn templates in the define_insn_and_split patterns.
> > However, I did not succeed in removing them completely. A single case makes
> > problem: lable reference immediates. This case still remains handled by the
> > shortened unsplitted instruction patterns. I have also experimented with
> > using gen_lowpart/gen_highpart. When using them I got about 40 additional
> > regressions due to ICE in gen_lowpart/gen_highpart. Namely, these functions
> > seem to fail on subreg input operands and as well on immediate label
> > references. Also the resulting code did not get smaller. So I decided to
> > stick to the explicit subreg expressions.
> >
> > I have tested the patch on the testsuite setup using the atmega128 simulator
> > and did not observe any regression.
> >
> > Yours,
> >
> > Björn
> >
> > BTW, what is happening with Andy's RTL-prologue/epilogue patch? IMHO, the
> > patch would be ready for check-in on mainline 4.1.?
>
> I will review it after your patch.
>
> >
> >
> >
> > 2005-15-04 Bjoern Haase <bjoern.m.haase@web.de>
> >
> > * config/avr/avr.md:
> > replace magic numbers for unspec numbering by (define_constants ).
> > add new unspec for generation of sign extension byte.
> > extend define_insn to define_insn_and_split for the patterns...
> > "andhi" (here also tiny change in define_insn pattern), "andsi"
> > "iorhi", "iorhi_clobber", "iorsi", "iorsi_clobber"
> > "extendqihi2", "extendqisi2", "extendhisi2"
> > "zero_extendqihi2", "zero_extendqisi2", "zero_extendhisi2"
> > replace "xorhi" and "xorsi" patterns by expanders
>
> Wrong change log entry.
[...]
How about right chahge log entry ?
Denis.
PS: IMHO RTL-prologue/epilogue patch have too many 'UNSPECs'.