[PATCH] pdp11: clean up multi-word operand handling
Paul Koning
paul_koning@dell.com
Thu Dec 9 18:44:00 GMT 2010
This patch cleans up the handling of multi-word operands (SI and DI modes) by creating a common function to expand such an operand to its component word (HImode) operands. This allows a lot of patterns like "adddi3" to be a lot shorter and cleaner; it also cures a number of wrong-code bugs.
Tested by build and make check. Committed.
paul
ChangeLog:
2010-12-09 Paul Koning <ni1d@arrl.net>
* config/pdp11/pdp11-protos.h (output_move_double,
output_move_quad): Delete.
(output_move_multiple, pdp11_expand_operands): New functions.
(pdp11_action, pdp11_partorder): New enums.
* config/pdp11/pdp11.md (movdi, movsi, movdf, movsf): Use
output_move_multiple.
(adddi3, subdi3, negdi2): New patterns.
(addsi3, subsi3, negsi2): Use pdp11_expand_operands.
(abshi2): Delete.
(neghi2, negqi2): Use PDPint iterator.
* config/pdp11/pdp11.c (find_addr_reg, output_move_double,
output_move_quad): Delete.
(pdp11_expand_operands, output_move_multiple): New functions.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pdp11.diff
Type: application/octet-stream
Size: 34887 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20101209/d927d7c0/attachment.obj>
More information about the Gcc-patches
mailing list