diff options
author | Richard Sandiford <rsandifo@gcc.gnu.org> | 2007-07-02 14:37:15 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2007-07-02 14:37:15 +0000 |
commit | e12605764d9a8d00fea20119b8a34de0afb9c7e1 (patch) | |
tree | 17ab8b62513a32d9a3ebc0baad0e18672084e65c /gcc/ChangeLog | |
parent | 8ad02175016741bf92109e29ed27b061ca630d84 (diff) | |
download | gcc-e12605764d9a8d00fea20119b8a34de0afb9c7e1.zip gcc-e12605764d9a8d00fea20119b8a34de0afb9c7e1.tar.gz gcc-e12605764d9a8d00fea20119b8a34de0afb9c7e1.tar.bz2 |
mips-protos.h (mips16e_save_restore_info): New struct.
gcc/
2007-07-02 Sandra Loosemore <sandra@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
Nigel Stephens <nigel@mips.com>
* config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
(mips16e_output_save_restore): Declare.
(mips16e_save_restore_pattern_p): Likewise.
* config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
* config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
for GENERATE_MIPS16E_SAVE_RESTORE. Return 0x400 for TARGET_MIPS16
&& !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
(BITSET_P): New global macro, extracted from...
(mips_for_each_saved_reg): ...here.
(mips16e_save_restore_info): New struct.
(mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
(mips16e_save_restore_regs): New variable.
(mips_split_plus, mips16e_find_first_register): New functions.
(mips16e_mask_registers): New function.
(compute_frame_size): Expand the commentary before the function.
Enforce the MIPS16e save and restore register range restrictions.
Pad the general register save area at the low end.
(mips16e_save_restore_reg, mips16e_build_save_restore)
(mips16e_save_restore_pattern_p, mips16e_add_register_range)
(mips16e_output_save_restore, mips16e_collect_propagate_value)
(mips16e_collect_argument_save, mips16e_collect_argument_saves):
New functions.
(mips_expand_prologue, mips_expand_epilogue): Handle
GENERATE_MIPS16E_SAVE_RESTORE.
* config/mips/mips.md (*mips16e_save_restore): New pattern.
gcc/testsuite/
* gcc.target/mips/save-restore-1.c: New test.
* gcc.target/mips/save-restore-2.c: Likewise.
* gcc.target/mips/save-restore-3.c: Likewise.
* gcc.target/mips/save-restore-4.c: Likewise.
From-SVN: r126207
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r-- | gcc/ChangeLog | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 585c547..99acea3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,33 @@ +2007-07-02 Sandra Loosemore <sandra@codesourcery.com> + Richard Sandiford <richard@codesourcery.com> + Nigel Stephens <nigel@mips.com> + + * config/mips/mips-protos.h (mips16e_save_restore_info): New struct. + (mips16e_output_save_restore): Declare. + (mips16e_save_restore_pattern_p): Likewise. + * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro. + * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8 + for GENERATE_MIPS16E_SAVE_RESTORE. Return 0x400 for TARGET_MIPS16 + && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT. + (BITSET_P): New global macro, extracted from... + (mips_for_each_saved_reg): ...here. + (mips16e_save_restore_info): New struct. + (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables. + (mips16e_save_restore_regs): New variable. + (mips_split_plus, mips16e_find_first_register): New functions. + (mips16e_mask_registers): New function. + (compute_frame_size): Expand the commentary before the function. + Enforce the MIPS16e save and restore register range restrictions. + Pad the general register save area at the low end. + (mips16e_save_restore_reg, mips16e_build_save_restore) + (mips16e_save_restore_pattern_p, mips16e_add_register_range) + (mips16e_output_save_restore, mips16e_collect_propagate_value) + (mips16e_collect_argument_save, mips16e_collect_argument_saves): + New functions. + (mips_expand_prologue, mips_expand_epilogue): Handle + GENERATE_MIPS16E_SAVE_RESTORE. + * config/mips/mips.md (*mips16e_save_restore): New pattern. + 2007-07-02 Uros Bizjak <ubizjak@gmail.com> PR tree-optimization/31966 |