]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c/8281 ([Sparc] ICE when compiling with -O2 -fPIC for Ultrasparc)
authorEric Botcazou <ebotcazou@libertysurf.fr>
Fri, 28 Mar 2003 08:55:04 +0000 (09:55 +0100)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 28 Mar 2003 08:55:04 +0000 (08:55 +0000)
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
gcc/config/sparc/sparc.md
gcc/testsuite/ChangeLog

index 53ec07b3acc0464c41b4a16807d658153f3c1b6b..21e58a45a5c89d9ac8b44b565b9a752cac15991d 100644 (file)
@@ -1,3 +1,9 @@
+2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       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  <ebotcazou@libertysurf.fr>
             Richard Henderson  <rth@redhat.com>
 
index 7deb29aa0c53fecc1d2053a060735909da26bda7..8bfdf00440b4c6861918f298c35642999cef95cb 100644 (file)
 
 (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)"
   "@
    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"
 (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))]
   "
 {
index c42f92cee3466723c87098e4e3bae49c87ef9a4f..4d1a65a6cefc72de7fdd0783cb1e6626ad53dfc6 100644 (file)
@@ -1,3 +1,7 @@
+2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * gcc.dg/ultrasp7.c: New test.
+
 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        * gcc.dg/sparc-dwarf2.c: New test.