This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PR target/15189
- From: Richard Sandiford <rsandifo at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 29 Apr 2004 20:58:32 +0100
- Subject: 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