lib1funcs.asm (___udivsi3): Jump to reti instead of exitdiv.
authorKazu Hirata <kazu@cs.umass.edu>
Thu, 13 Nov 2003 22:28:07 +0000 (22:28 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Thu, 13 Nov 2003 22:28:07 +0000 (22:28 +0000)
* config/h8300/lib1funcs.asm (___udivsi3): Jump to reti
instead of exitdiv.
(___umodsi3): Likewise.
(exitdiv): Do not restore any register.
(reti): Restore registers.

From-SVN: r73560

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

index fee78ada371d4f6af6602427e6f08cd9dc5cd0ba..d0ddf501c731594f3bb25ba43de0f9a7221b1ac0 100644 (file)
@@ -1,3 +1,11 @@
+2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/lib1funcs.asm (___udivsi3): Jump to reti
+       instead of exitdiv.
+       (___umodsi3): Likewise.
+       (exitdiv): Do not restore any register.
+       (reti): Restore registers.
+
 2003-11-13  Steven Bosscher  <stevenb@suse.de>
 
        * tree-inline.c (walk_tree): Handle PLACEHOLDER_EXPR.
index dd43592679d038518b269a89f8378b55a3bee480..3e7d89f23a11a83af2b8b8174310e16df87d383f 100644 (file)
@@ -452,9 +452,8 @@ ___udivsi3:
        PUSHP   S2P
        PUSHP   S0P
        PUSHP   S1P
-       mov.b   #0,S2L  ; keep sign low
        bsr     divmodsi4
-       bra     exitdiv
+       bra     reti
 #else
        ;; H8/300H and H8S version of divmodsi4 does not clobber S1P or S2P.
        PUSHP   S0P
@@ -469,11 +468,10 @@ ___umodsi3:
        PUSHP   S2P
        PUSHP   S0P
        PUSHP   S1P
-       mov.b   #0,S2L  ; keep sign low
        bsr     divmodsi4
        mov     S0,A0
        mov     S1,A1
-       bra     exitdiv
+       bra     reti
 #else
        ;; H8/300H and H8S version of divmodsi4 does not clobber S1P or S2P.
        PUSHP   S0P
@@ -493,9 +491,6 @@ ___divsi3:
 
        ; examine what the sign should be
 exitdiv:
-       POPP    S1P
-       POPP    S0P
-
        or      S2L,S2L
        beq     reti
 
@@ -515,6 +510,8 @@ exitdiv:
 #endif
 
 reti:
+       POPP    S1P
+       POPP    S0P
        POPP    S2P
        rts