This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH, AVR]Fix PR target/41885 AVR Rotate patterns
- From: Andrew Hutchinson <andrewhutchinson at cox dot net>
- To: gcc-patches at gcc dot gnu dot org, Anatoly Sokolov <aesok at post dot ru>, "Weddington, Eric" <Eric dot Weddington at atmel dot com>
- Date: Fri, 30 Oct 2009 23:07:50 -0400
- Subject: [PATCH, AVR]Fix PR target/41885 AVR Rotate patterns
Hi Anatoly
The attached patch correct AVR target rotate split patterns so they
correctly consider all overlapping cases of source and destination operands.
The new patterns use mode iterators and now also split DI mode rotates.
A missing CONST_INT_P check before use of INTVAL is also correct in
QImode rotate.
The patched version was tested using the executable testsuite for AVR
target. There were no regressions.
make check-gcc RUNTESTFLAGS="execute.exp --target_board=atmega128-sim"
=== gcc Summary ===
# of expected passes 12981
# of unexpected failures 40
# of unresolved testcases 23
# of untested testcases 6
# of unsupported tests 750
/home/andy/gcchead/obj-dir/gcc/xgcc version 4.5.0 20091031
(experimental) (GCC)
Ok to comit to 4.5?
2009-10-31 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
PR target/41885
* avr.md (rotlqi3): Add CONST_INT_P check.
(rotlhi3): Delete.
(rotlhi3_8): Delete.
(rotlsi3): Delete.
(rotlsi3_8): Delete.
(rotlsi3_16): Delete.
(rotlsi3_24): Delete.
(rotl<mode>3): New.
(*rotw<mode>3): New.
(*rotb<mode>3): New.
*avr.c (avr_rotate_bytes): New function.
*avr-proto.h (avr_rotate_bytes): New function.
Attachment:
pr41885.patch
Description: Text document