lib1funcs.asm (___udivsi3): Peel off the first iteration.
authorKazu Hirata <kazu@cs.umass.edu>
Fri, 14 Nov 2003 20:39:30 +0000 (20:39 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Fri, 14 Nov 2003 20:39:30 +0000 (20:39 +0000)
* config/h8300/lib1funcs.asm (___udivsi3): Peel off the first
iteration.

From-SVN: r73620

gcc/ChangeLog
gcc/config/h8300/lib1funcs.asm

index 3725a1c35a4051c8a47305b9a8b721f8391665d5..44b6690a510023b221e8db3aec99dbfbac6aa60c 100644 (file)
@@ -1,3 +1,8 @@
+2003-11-14  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/lib1funcs.asm (___udivsi3): Peel off the first
+       iteration.
+
 2003-11-14  Fariborz Jahanian <fjahanian@apple.com>
 
        * config/rs6000/rs6000.c (rs6000_move_block_from_reg):
index 44d399087b622ddd777bf097c2fa0de972e1c3ea..744d402d19bc0f8d6ab84e146f80c86c4e5bac97 100644 (file)
@@ -633,13 +633,16 @@ divmod_L21:
        mov.w   e2,e2
        bne     divmod_L21
 #else
-       bra     divmod_L22
+       shlr.l  #2,er2          ; make divisor < 2^16
+       mov.w   e2,e2
+       beq     divmod_L22A
 divmod_L21:
        shlr.l  #2,er0
 divmod_L22:
        shlr.l  #2,er2          ; make divisor < 2^16
        mov.w   e2,e2
        bne     divmod_L21
+divmod_L22A:
        rotxl.w r2
        bcs     divmod_L23
        shlr.l  er0