OSDN Git Service

* config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
authorbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Apr 2007 17:59:10 +0000 (17:59 +0000)
committerbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Apr 2007 17:59:10 +0000 (17:59 +0000)
DIV0 exception can fall through to a normal return.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124303 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/xtensa/lib1funcs.asm

index 906135b..386d898 100644 (file)
@@ -1,3 +1,8 @@
+2007-04-30  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
+       DIV0 exception can fall through to a normal return.
+       
 2007-04-30  Alexandre Oliva  <aoliva@redhat.com>
 
        PR middle-end/22156
index 6db2a7d..7cb994d 100644 (file)
@@ -654,16 +654,17 @@ __umodsi3:
        leaf_return
 
 .Lle_one:
-       beqz    a3, .Lerror
-       movi    a2, 0
-       leaf_return
+       bnez    a3, .Lreturn0
 
-.Lerror:
        /* Divide by zero: Use an illegal instruction to force an exception.
           The subsequent "DIV0" string can be recognized by the exception
           handler to identify the real cause of the exception.  */
        ill
        .ascii  "DIV0"
+
+.Lreturn0:
+       movi    a2, 0
+       leaf_return
        .size   __umodsi3,.-__umodsi3
 
 #endif /* L_umodsi3 */
@@ -712,16 +713,17 @@ __modsi3:
        leaf_return
 
 .Lle_one:
-       beqz    a3, .Lerror
-       movi    a2, 0
-       leaf_return
+       bnez    a3, .Lreturn0
 
-.Lerror:
        /* Divide by zero: Use an illegal instruction to force an exception.
           The subsequent "DIV0" string can be recognized by the exception
           handler to identify the real cause of the exception.  */
        ill
        .ascii  "DIV0"
+
+.Lreturn0:
+       movi    a2, 0
+       leaf_return
        .size   __modsi3,.-__modsi3
 
 #endif /* L_modsi3 */