re PR target/33635 (Bootstrap broken on mips-sgi-irix6.5)
commit0064fbe9b6d395c794fc021d6dc97b40f9d7ac92
authorRichard Sandiford <rsandifo@nildram.co.uk>
Wed, 3 Oct 2007 18:39:30 +0000 (3 18:39 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 3 Oct 2007 18:39:30 +0000 (3 18:39 +0000)
treefacac44939a51a8591e7804d091bfb66aeb0c6f6
parentf5783e34f97cd9012ae3ee4118a5e3bf642d8aed
re PR target/33635 (Bootstrap broken on mips-sgi-irix6.5)

gcc/
PR target/33635
* config/mips/mips-protos.h (mips_split_64bit_move): Rename to...
(mips_split_doubleword_move): ...this.
* config/mips/mips.c (mips_subword): Extend to handle 64-bit words;
use natural endianness for multi-format FPR values.
(mips_split_64bit_move): Rename to...
(mips_split_doubleword_move): ...this and extend to 64-bit words.
Use move_doubleword_fpr* patterns for moves involving FPRs.
(mips_save_reg): Update the call to mips_split_64bit_move.
(mips_secondary_reload_class): Return NO_REGS for any reload of a
nonzero constant into an FPR if the constant can be forced to memory.
* config/mips/mips.md: Update the splitter calls to
mips_split_64bit_move.
(UNSPEC_LOAD_DF_LOW): Rename to...
(UNSPEC_LOAD_LOW): ...this.
(UNSPEC_LOAD_DF_HIGH): Rename to...
(UNSPEC_LOAD_HIGH): ...this.
(UNSPEC_STORE_DF_HIGH): Rename to...
(UNSPEC_STORE_WORD): ...this.
(SPLITF): New mode iterator.
(HALFMODE): New mode attribute.
(movtf): New expander.
(*movtf_internal): New define_insn_and_split.
(move_doubleword_fpr<mode>): New expander.
(load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace
with...
(load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
(mfhc1<mode>): ...these more general patterns.

gcc/testsuite/
PR target/33635
* gcc.target/mips/mips.exp (setup_mips_tests): Set mips_isa_rev
and mips_forced_be.
(dg-mips-options): Handle -EL and -mel.  Make -mfp64 imply
-mhard-float and a suitable ISA.  Improve handling of -mipsXrY
options.
* gcc.target/mips/fpr-moves-1.c: New test.
* gcc.target/mips/fpr-moves-2.c: Likewise.
* gcc.target/mips/fpr-moves-3.c: Likewise.
* gcc.target/mips/fpr-moves-4.c: Likewise.
* gcc.target/mips/fpr-moves-5.c: Likewise.
* gcc.target/mips/fpr-moves-6.c: Likewise.
* gcc.target/mips/mips32r2-mxhc1.c: Remove -march=mips32r2

From-SVN: r128991
13 files changed:
gcc/ChangeLog
gcc/config/mips/mips-protos.h
gcc/config/mips/mips.c
gcc/config/mips/mips.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/mips/fpr-moves-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/fpr-moves-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/fpr-moves-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/fpr-moves-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/fpr-moves-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/fpr-moves-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/mips/mips.exp
gcc/testsuite/gcc.target/mips/mips32r2-mxhc1.c