[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