summaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorEdgar E. Iglesias <edgar.iglesias@gmail.com>2013-02-19 23:00:50 +0000
committerMichael Eager <eager@gcc.gnu.org>2013-02-19 23:00:50 +0000
commit7c422dbbc7446d733bc080617efe7afa3e6c0e20 (patch)
tree2141ae18b639a63c2acd555f600fdca7b4501db4 /libgcc
parentd6988187cd6778a81425a3825f6331abac918485 (diff)
downloadgcc-7c422dbbc7446d733bc080617efe7afa3e6c0e20.tar.gz
modsi3.S (modsi3): Fix case with 0x80000000 as dividend.
* config/microblaze/modsi3.S (modsi3): Fix case with 0x80000000 as dividend. From-SVN: r196156
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog4
-rw-r--r--libgcc/config/microblaze/modsi3.S2
2 files changed, 6 insertions, 0 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index d4bc8109e7d..6032f6f1a6a 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,7 @@
+2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
+ * config/microblaze/modsi3.S (modsi3): Fix case with 0x80000000
+ as dividend.
+
2013-02-16 Alan Modra <amodra@gmail.com>
PR target/55431
diff --git a/libgcc/config/microblaze/modsi3.S b/libgcc/config/microblaze/modsi3.S
index ed28acf8f63..93d0c30b688 100644
--- a/libgcc/config/microblaze/modsi3.S
+++ b/libgcc/config/microblaze/modsi3.S
@@ -55,6 +55,8 @@ $LaR5_Pos:
$LaR6_Pos:
ADDIK r3,r0,0 # Clear mod
ADDIK r30,r0,0 # clear div
+ BLTId r5,$LaDIV2 # If r5 is still negative (0x80000000), skip
+ # the first bit search.
ADDIK r29,r0,32 # Initialize the loop count
# First part try to find the first '1' in the r5
$LaDIV1: