From 239a66497f7674b72288b57451d05af413f9d107 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Fri, 28 Mar 2003 09:55:04 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/sparc/sparc.md | 20 +++++++++++++------- gcc/testsuite/ChangeLog | 4 ++++ 3 files changed, 23 insertions(+), 7 deletions(-) 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. -- 2.47.2