Commit a7d840c7 by Bernardo Innocenti

re PR target/13292 (-msoft-float seems to corrupt builtin defines)

	PR target/13292
	* config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
	on -msoft-float.
	(TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
	68040 and soft-float.
	* config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
	in the TARGET_68040_ONLY case.

From-SVN: r83268
parent 18cf0da2
2004-06-15 Peter Barada <peter@the-baradas.com> 2004-06-16 Bernardo Innocenti <bernie@develer.com>
PR target/13292
* config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
on -msoft-float.
(TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
68040 and soft-float.
* config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
in the TARGET_68040_ONLY case.
2004-06-16 Peter Barada <peter@the-baradas.com>
* config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q. * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
(movsi_cf): Make named, don't match TARGET_CFV4. (movsi_cf): Make named, don't match TARGET_CFV4.
......
...@@ -257,7 +257,7 @@ extern int target_flags; ...@@ -257,7 +257,7 @@ extern int target_flags;
{ "noshort", - MASK_SHORT, \ { "noshort", - MASK_SHORT, \
N_("Consider type `int' to be 32 bits wide") }, \ N_("Consider type `int' to be 32 bits wide") }, \
{ "68881", MASK_68881, "" }, \ { "68881", MASK_68881, "" }, \
{ "soft-float", - (MASK_68040_ONLY|MASK_68881), \ { "soft-float", - MASK_68881, \
N_("Generate code with library calls for floating point") }, \ N_("Generate code with library calls for floating point") }, \
{ "68020-40", -(MASK_ALL_CF_BITS|MASK_68060|MASK_68040_ONLY), \ { "68020-40", -(MASK_ALL_CF_BITS|MASK_68060|MASK_68040_ONLY), \
N_("Generate code for a 68040, without any new instructions") }, \ N_("Generate code for a 68040, without any new instructions") }, \
...@@ -355,7 +355,7 @@ extern int target_flags; ...@@ -355,7 +355,7 @@ extern int target_flags;
/* target machine storage layout */ /* target machine storage layout */
#define LONG_DOUBLE_TYPE_SIZE 96 #define LONG_DOUBLE_TYPE_SIZE 96
#define TARGET_FLT_EVAL_METHOD (TARGET_68040_ONLY ? 0 : 2) #define TARGET_FLT_EVAL_METHOD ((TARGET_68040_ONLY || ! TARGET_68881) ? 0 : 2)
#define BITS_BIG_ENDIAN 1 #define BITS_BIG_ENDIAN 1
#define BYTES_BIG_ENDIAN 1 #define BYTES_BIG_ENDIAN 1
......
...@@ -1548,7 +1548,7 @@ ...@@ -1548,7 +1548,7 @@
[(set (match_operand:SF 0 "nonimmediate_operand" "=f") [(set (match_operand:SF 0 "nonimmediate_operand" "=f")
(float_truncate:SF (float_truncate:SF
(match_operand:DF 1 "general_operand" "fmG")))] (match_operand:DF 1 "general_operand" "fmG")))]
"TARGET_68040_ONLY" "TARGET_68881 && TARGET_68040_ONLY"
{ {
if (FP_REG_P (operands[1])) if (FP_REG_P (operands[1]))
return "f%$move%.x %1,%0"; return "f%$move%.x %1,%0";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment