From: Eric Botcazou Date: Fri, 28 Mar 2003 08:55:04 +0000 (+0100) Subject: re PR c/8281 ([Sparc] ICE when compiling with -O2 -fPIC for Ultrasparc) X-Git-Tag: releases/gcc-3.2.3~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=239a66497f7674b72288b57451d05af413f9d107;p=thirdparty%2Fgcc.git re PR c/8281 ([Sparc] ICE when compiling with -O2 -fPIC for Ultrasparc) PR c/8281 * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative. (movdi reg/reg split): Match only on sparc32, and v9 when int regs. From-SVN: r64961 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 53ec07b3acc0..21e58a45a5c8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-03-28 Eric Botcazou + + PR c/8281 + * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative. + (movdi reg/reg split): Match only on sparc32, and v9 when int regs. + 2003-03-28 Eric Botcazou Richard Henderson diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index 7deb29aa0c53..8bfdf00440b4 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -2531,9 +2531,9 @@ (define_insn "*movdi_insn_sp32_v9" [(set (match_operand:DI 0 "nonimmediate_operand" - "=T,o,T,U,o,r,r,r,?T,?f,?f,?o,?f,?e,?e,?W") + "=T,o,T,U,o,r,r,r,?T,?f,?f,?o,?e,?e,?W") (match_operand:DI 1 "input_operand" - " J,J,U,T,r,o,i,r, f, T, o, f, f, e, W, e"))] + " J,J,U,T,r,o,i,r, f, T, o, f, e, W, e"))] "! TARGET_ARCH64 && TARGET_V9 && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)" "@ @@ -2549,13 +2549,12 @@ ldd\\t%1, %0 # # - # fmovd\\t%1, %0 ldd\\t%1, %0 std\\t%1, %0" - [(set_attr "type" "store,store,store,load,*,*,*,*,fpstore,fpload,*,*,*,fpmove,fpload,fpstore") - (set_attr "length" "*,2,*,*,2,2,2,2,*,*,2,2,2,*,*,*") - (set_attr "fptype" "*,*,*,*,*,*,*,*,*,*,*,*,*,double,*,*")]) + [(set_attr "type" "store,store,store,load,*,*,*,*,fpstore,fpload,*,*,fpmove,fpload,fpstore") + (set_attr "length" "*,2,*,*,2,2,2,2,*,*,2,2,*,*,*") + (set_attr "fptype" "*,*,*,*,*,*,*,*,*,*,*,*,double,*,*")]) (define_insn "*movdi_insn_sp32" [(set (match_operand:DI 0 "nonimmediate_operand" @@ -2899,7 +2898,14 @@ (define_split [(set (match_operand:DI 0 "register_operand" "") (match_operand:DI 1 "register_operand" ""))] - "! TARGET_ARCH64 && reload_completed" + "reload_completed + && (! TARGET_V9 + || (! TARGET_ARCH64 + && ((GET_CODE (operands[0]) == REG + && REGNO (operands[0]) < 32) + || (GET_CODE (operands[0]) == SUBREG + && GET_CODE (SUBREG_REG (operands[0])) == REG + && REGNO (SUBREG_REG (operands[0])) < 32))))" [(clobber (const_int 0))] " { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c42f92cee346..4d1a65a6cefc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2003-03-28 Eric Botcazou + + * gcc.dg/ultrasp7.c: New test. + 2003-03-28 Eric Botcazou * gcc.dg/sparc-dwarf2.c: New test.