OSDN Git Service

gcc/
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 2 Jul 2007 14:37:15 +0000 (14:37 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 2 Jul 2007 14:37:15 +0000 (14:37 +0000)
commit0e13e859c81ec88c603876ca1eccfeed30022384
tree17ab8b62513a32d9a3ebc0baad0e18672084e65c
parent58bc8309d5b60a741be3f24372cbf9fdbff79d8a
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126207 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/mips/mips-protos.h
gcc/config/mips/mips.c
gcc/config/mips/mips.h
gcc/config/mips/mips.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/mips/save-restore-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/save-restore-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/save-restore-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/save-restore-4.c [new file with mode: 0644]