ia64.md (*movti_internal): C output template extracted to ia64.c.
authorZack Weinberg <zack@gcc.gnu.org>
Fri, 16 Jan 2004 01:27:38 +0000 (01:27 +0000)
committerZack Weinberg <zack@gcc.gnu.org>
Fri, 16 Jan 2004 01:27:38 +0000 (01:27 +0000)
commitf57fc998eeab27e8292de128b37c94ffa37d8409
tree8c8acf6e85b0ef4b2cdeb4d1ce751bdf47265a9a
parent16a9a2803f9e25933a2ca2bc28590464b1f42c9f
ia64.md (*movti_internal): C output template extracted to ia64.c.

* config/ia64/ia64.md (*movti_internal): C output template
extracted to ia64.c.
(*movti_internal_reg): Delete.
(reload_inti, reload_outti): Use the correct mode on operand 2
in the first place, don't fix it up in the output template.
(movtf, reload_ointf, reload_outtf): New expanders.
(*movtf_internal): New define_insn_and_split.
* config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
make static; do not hand TFmode CONST_DOUBLEs to split_double.
(ia64_split_tmode_move): New function, body mostly pulled
from ia64.md:*movti_internal.
(ia64_function_arg_words): New function, extracted common
logic from ia64_function_arg et seq.
(ia64_function_arg_offset): Likewise.  Handle correctly the
case of a scalar quantity 16 bytes wide with only 8-byte alignment.
(ia64_function_arg, ia64_function_arg_partial_nregs)
(ia64_function_arg_advance): Use ia64_function_arg_words and
ia64_function_arg_offset.
(ia64_function_value): TCmode does not go in float regs.
(ia64_secondary_reload_class): Also handle TFmode.
* config/ia64/ia64-protos.h: Remove prototype for
ia64_split_timode; add prototype for ia64_split_tmode_move.

From-SVN: r75956
gcc/ChangeLog
gcc/config/ia64/ia64-protos.h
gcc/config/ia64/ia64.c
gcc/config/ia64/ia64.md