[openfirmware] [commit] r2329 - cpu/arm
repository service
svn at openfirmware.info
Wed Jul 6 04:17:56 CEST 2011
Author: wmb
Date: Wed Jul 6 04:17:56 2011
New Revision: 2329
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2329
Log:
ARM - fixed hang when dividing by 0.
Modified:
cpu/arm/muldiv.fth
Modified: cpu/arm/muldiv.fth
==============================================================================
--- cpu/arm/muldiv.fth Sat Jul 2 08:07:31 2011 (r2328)
+++ cpu/arm/muldiv.fth Wed Jul 6 04:17:56 2011 (r2329)
@@ -97,8 +97,11 @@
\ r0 / tos = r0.rem tos.quot
code (32/32division)
mov r3,#1
-\ cmp tos,#0
+ cmp tos,#0
\ ' divide-error dolink eq branch
+ mvneq tos,#0
+ moveq pc,lk
+
begin
cmp tos,#0x80000000
cmpcc tos,r0
@@ -118,13 +121,18 @@
end-code
code (u64division)
+ orrs r4,r2,r3
+\ ' divide-error bleq *
+ mvneq r4,#0 \ Max out quotient for divide by 0
+ mvneq r5,#0
+ moveq pc,lk
+
stmdb sp!,{r7,r8,r9}
mov r6,#0
mov r7,#1
mov r4,#0
mov r5,#0
- orrs r8,r2,r3
-\ ' divide-error bleq *
+
begin
cmp r2,#0x80000000
u< if
More information about the openfirmware
mailing list