]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR target/20621 (ICE: in change_address_1, at emit-rtl.c:1886)
authorRichard Sandiford <richard@codesourcery.com>
Sun, 31 Jul 2005 08:35:15 +0000 (08:35 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sun, 31 Jul 2005 08:35:15 +0000 (08:35 +0000)
commit259e858fffe4f65b14dca0c66841fb8d02474757
tree43032cdef3e814a4bb45cbc0c57876c4f6b480bf
parente355794ca1d5a73e44841de364f1f10ed8c8ed8f
re PR target/20621 (ICE: in change_address_1, at emit-rtl.c:1886)

PR target/20621
Backport from mainline:

2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
* config/mips/mips.md (cprestore): Provide two alternatives, one for
an in-range offset and one for an out-of-range offset.  Wrap the latter
in .set macro/.set nomacro if it's inside a .set nomacro block.

2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
* config/mips/mips-protos.h (mips_gp_save_slot): Remove.
(mips_restore_gp): Declare.
* config/mips/mips.c (mips_add_offset): Add a scratch register
argument.  Reimplement in rtl only, reusing MIPS16 logic from
mips_output_mi_thunk.
(mips_legitimize_address, mips_legitimize_const_move): Adjust calls
to mips_add_offset.
(mips_gp_save_slot): Delete.
(mips_restore_gp): New function.
(mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
* config/mips/mips.md (exception_receiver): Turn into a
define_insn_and_split.  Use mips_restore_gp to do the split.
(call_internal, call_value_internal, call_value_multiple_internal): Use
mips_restore_gp to restore $gp.

From-SVN: r102605
gcc/ChangeLog
gcc/config/mips/mips-protos.h
gcc/config/mips/mips.c
gcc/config/mips/mips.md
gcc/testsuite/ChangeLog