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
This commit is contained in:
parent
a99d6b8c08
commit
b81fdb5a14
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue