http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49880

Kazumoto Kojima <kkojima at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|shle--netbsdelf             |sh*-*-*
             Status|UNCONFIRMED                 |NEW
           Keywords|                            |ice-on-valid-code
   Last reconfirmed|                            |2011.07.28 22:50:01
                 CC|                            |kkojima at gcc dot gnu.org
               Host|i386--netbsdelf             |
     Ever Confirmed|0                           |1
      Known to fail|                            |4.2.5, 4.3.6, 4.4.7, 4.5.5,
                   |                            |4.6.2, 4.7.0
              Build|i386--netbsdelf             |

--- Comment #1 from Kazumoto Kojima <kkojima at gcc dot gnu.org> 2011-07-28 
22:50:01 UTC ---
I've confirmed that trunk and all released compilers fail with
-m4 -mdiv=call-div1.  I'm testing the patch below.

    * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
    (divsi3_i1): Likewise.

--- ORIG/trunk/gcc/config/sh/sh.md    2011-07-20 09:27:11.000000000 +0900
+++ trunk/gcc/config/sh/sh.md    2011-07-28 06:49:41.000000000 +0900
@@ -1609,7 +1609,7 @@
    (clobber (reg:SI PR_REG))
    (clobber (reg:SI R4_REG))
    (use (match_operand:SI 1 "arith_reg_operand" "r"))]
-  "TARGET_SH1 && ! TARGET_SH4"
+  "TARGET_SH1 && (! TARGET_SH4 || TARGET_DIVIDE_CALL_DIV1)"
   "jsr    @%1%#"
   [(set_attr "type" "sfunc")
    (set_attr "needs_delay_slot" "yes")])
@@ -1815,7 +1815,7 @@
    (clobber (reg:SI R2_REG))
    (clobber (reg:SI R3_REG))
    (use (match_operand:SI 1 "arith_reg_operand" "r"))]
-  "TARGET_SH1 && ! TARGET_SH4"
+  "TARGET_SH1 && (! TARGET_SH4 || TARGET_DIVIDE_CALL_DIV1)"
   "jsr    @%1%#"
   [(set_attr "type" "sfunc")
    (set_attr "needs_delay_slot" "yes")])

Reply via email to