re PR rtl-optimization/12630 (Various unrecognizable insns and ICEs at -O3)
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Sat, 8 Nov 2003 20:36:30 +0000 (20:36 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Sat, 8 Nov 2003 20:36:30 +0000 (20:36 +0000)
commitcdc9103cba6f914981e3ba352d22db578c4aa209
tree63aafd1067bf87ae1d6116cc2f87f72d9b889f0f
parentac47cc13ab45226d800f5cbc98ad50ed99812b4b
re PR rtl-optimization/12630 (Various unrecognizable insns and ICEs at -O3)

PR optimization/12630
* pa.c (compute_movstrsi_length): Rename to compute_movstr_length.
Handle length computation 64-bit moves.
(compute_clrstr_length, output_block_clear): Implement block clear.
(output_block_move): Handle 64-bit moves.
(pa_adjust_insn_length): Use compute_movstr_length and
compute_clrstr_length.
* pa.md (movstrsi): Revise operand order and comments.  Don't use
match_scratch.
(movstrsi_internal): Delete.
(movstrsi_prereload, movstrsi_postreload): New insns.  Define splitter
and peephole2 patterns to transform prereload to postreload form.
(movstrdi, movstrdi_prereload, movstrdi_postreload, clrstrsi,
clrstrsi_prereload, clrstrsi_postreload, clrstrdi, clrstrdi_prereload,
clrstrdi_postreload): New patterns for 64-bit block move, and block
clear.
* pa-protos.h (output_block_clear): New prototype.

From-SVN: r73375
gcc/ChangeLog
gcc/config/pa/pa-protos.h
gcc/config/pa/pa.c
gcc/config/pa/pa.md