aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDiego Novillo <dnovillo@cygnus.com>1999-10-05 12:18:56 +0000
committerGavin Romig-Koch <gavin@gcc.gnu.org>1999-10-05 12:18:56 +0000
commitb81fdb5a14398ef5f9a1a2e7a1d93ac6878854b4 (patch)
tree15ad42b9f02c1cc8bfa5bc887e1a373ffd32c466 /gcc
parenta99d6b8c08c540fa7da3a71529ff010c0845957d (diff)
downloadgcc-b81fdb5a14398ef5f9a1a2e7a1d93ac6878854b4.zip
gcc-b81fdb5a14398ef5f9a1a2e7a1d93ac6878854b4.tar.gz
gcc-b81fdb5a14398ef5f9a1a2e7a1d93ac6878854b4.tar.bz2
mips.c (mips_move_2words): Split doubles if ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
* config/mips/mips.c (mips_move_2words): Split doubles if ISA >= 3, !TARGET_64BIT, and destination is not an FP register. Co-Authored-By: Jonathan Larmour <jlarmour@cygnus.co.uk> From-SVN: r29824
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/mips/mips.c12
2 files changed, 17 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c94f985..5f257ccf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Mon Oct 4 16:48:16 1999 Diego Novillo <dnovillo@cygnus.com>
+ Jonathan Larmour <jlarmour@cygnus.co.uk>
+
+ * config/mips/mips.c (mips_move_2words): Split doubles if
+ ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
+
Mon Oct 4 21:47:31 1999 Richard Henderson <rth@cygnus.com>
* genrecog.c (struct decision_test): New.
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index f24452b..b760292 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -2214,7 +2214,17 @@ mips_move_2words (operands, insn)
}
else
#endif
- ret = "li.d\t%0,%1";
+ /* GNU as emits 64-bit code for li.d if the ISA is 3
+ or higher. For !TARGET_64BIT && gp registers we
+ need to avoid this by using two li instructions
+ instead. */
+ if (mips_isa >= 3 && !TARGET_64BIT && !FP_REG_P (regno0))
+ {
+ split_double (op1, operands + 2, operands + 3);
+ ret = "li\t%0,%2\n\tli\t%D0,%3";
+ }
+ else
+ ret = "li.d\t%0,%1";
}
else if (TARGET_64BIT)