This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PR target/15189


This patch fixes PR 15189, a 3.4 regression.  The problem was that
the mips1 patterns for loading and storing half a DFmode value had
a hard-coded length of 4.

Since operands 0 and 1 are the same as for a normal move, we can just
use the default length instead.

Patch bootstrapped & regression tested on mips-sgi-irix6.5, mips64-linux-gnu
and mips64el-linux-gnu.  Applied to HEAD and 3.4 branch.

No new testcase is needed since the bug is shown by an existing one,
although the reporter used "-mips1 -mno-split-addresses -mno-explicit-relocs
-G0" to expose it.

Richard


	PR target/15189
	* config/mips/mips.md (load_df_low): Use default length.
	(load_df_high, store_df_high): Likewise.

Index: config/mips/mips.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/mips.md,v
retrieving revision 1.236
diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.236 mips.md
--- config/mips/mips.md	25 Apr 2004 08:28:32 -0000	1.236
+++ config/mips/mips.md	28 Apr 2004 19:34:17 -0000
@@ -5274,8 +5274,7 @@ (define_insn "load_df_low"
   return mips_output_move (operands[0], operands[1]);
 }
   [(set_attr "type"	"xfer,fpload")
-   (set_attr "mode"	"SF")
-   (set_attr "length"	"4")])
+   (set_attr "mode"	"SF")])
 
 ;; Load the high word of operand 0 from operand 1, preserving the value
 ;; in the low word.
@@ -5290,8 +5289,7 @@ (define_insn "load_df_high"
   return mips_output_move (operands[0], operands[1]);
 }
   [(set_attr "type"	"xfer,fpload")
-   (set_attr "mode"	"SF")
-   (set_attr "length"	"4")])
+   (set_attr "mode"	"SF")])
 
 ;; Store the high word of operand 1 in operand 0.  The corresponding
 ;; low-word move is done in the normal way.
@@ -5305,8 +5303,7 @@ (define_insn "store_df_high"
   return mips_output_move (operands[0], operands[1]);
 }
   [(set_attr "type"	"xfer,fpstore")
-   (set_attr "mode"	"SF")
-   (set_attr "length"	"4")])
+   (set_attr "mode"	"SF")])
 
 ;; Insn to initialize $gp for n32/n64 abicalls.  Operand 0 is the offset
 ;; of _gp from the start of this function.  Operand 1 is the incoming


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]