From 0a21c1d2bae57035c0f46cca64e85f228c6b4388 Mon Sep 17 00:00:00 2001 From: Bob Wilson Date: Mon, 30 Apr 2007 17:59:10 +0000 Subject: [PATCH] lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that DIV0 exception can fall through to a normal return. * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that DIV0 exception can fall through to a normal return. From-SVN: r124303 --- gcc/ChangeLog | 5 +++++ gcc/config/xtensa/lib1funcs.asm | 18 ++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 906135b4a71..386d898e70a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-04-30 Bob Wilson + + * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that + DIV0 exception can fall through to a normal return. + 2007-04-30 Alexandre Oliva PR middle-end/22156 diff --git a/gcc/config/xtensa/lib1funcs.asm b/gcc/config/xtensa/lib1funcs.asm index 6db2a7d7239..7cb994dfd2e 100644 --- a/gcc/config/xtensa/lib1funcs.asm +++ b/gcc/config/xtensa/lib1funcs.asm @@ -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 */ -- 2.30.2