rs6000.c (direct_return): Check if we are saving altivec registers.
authorAldy Hernandez <aldyh@redhat.com>
Wed, 21 Nov 2001 01:04:44 +0000 (01:04 +0000)
committerAldy Hernandez <aldyh@gcc.gnu.org>
Wed, 21 Nov 2001 01:04:44 +0000 (01:04 +0000)
commit00b960c7ada70affc18fe7f4ad170a40c684c208
treeb5b8cc76657317a11d2de8f055d3e60e9ca71759
parent1b735a5700b2b490eccc2dc62dd0179d5c79d211
rs6000.c (direct_return): Check if we are saving altivec registers.

* rs6000.c (direct_return): Check if we are saving altivec
registers.
(first_altivec_reg_to_save): New.
Updated stack frame layout comments.
(rs6000_stack_info): Calculate altivec register save size.
Save link register if we saved some altivec registers.
(rs6000_stack_info): Align save size to 16 if altivec abi or
abi_darwin.
(rs6000_stack_info): Calculate altivec register offsets.
(rs6000_stack_info): Add altivec info to save_size.
(debug_stack_info): Add altivec debug info.
(rs6000_emit_prologue): Save altivec registers and vrsave.
(compute_vrsave_mask): New.
(altivec_expand_builtin): Remove unused variables.
(rs6000_parse_abi_options): Add static qualifier.
(rs6000_expand_builtin): Remove unused parameters.
(altivec_expand_builtin): Cast bdesc_2arg to get rid of warning.
(altivec_init_builtins): Same.
(is_altivec_return_reg): New.
(vrsave_operation): New.
(ALTIVEC_REG_BIT): New.
(generate_set_vrsave): New.

* rs6000.md (get_vrsave): New.
(set_vrsave): New.
(*set_vrsave_internal): New.

* rs6000.h (rs6000_stack): Add first_altivec_reg_save,
altivec_save_offset, vrsave_save_offset, altive_size, vrsave_size,
altivec_padding_size, vrsave_mask.
(TOTAL_ALTIVEC_REGS): New.
(EPILOGUE_USES): Add VRSAVE_REGNO.

From-SVN: r47228
gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/rs6000.md