OSDN Git Service

* config/h8300/lib1funcs.asm (udivsi3): Don't save/restore
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Nov 2003 19:42:03 +0000 (19:42 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Nov 2003 19:42:03 +0000 (19:42 +0000)
unused registers.  Don't jump to exitdiv.
(umodsi3): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73555 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 31dfb24..646a7be 100644 (file)
@@ -1,3 +1,9 @@
+2003-11-13  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/lib1funcs.asm (udivsi3): Don't save/restore
+       unused registers.  Don't jump to exitdiv.
+       (umodsi3): Likewise.
+
 2003-11-13  Mark Mitchell  <mark@codesourcery.com>
             Kean Johnston <jkj@sco.com>
 
index d71a11e..5b16ce3 100644 (file)
@@ -448,27 +448,40 @@ ___modsi3:
 
        .global ___udivsi3
 ___udivsi3:
+#ifdef __H8300__
        PUSHP   S2P
        PUSHP   S0P
        PUSHP   S1P
        mov.b   #0,S2L  ; keep sign low
        bsr     divmodsi4
        bra     exitdiv
+#else
+       ;; H8/300H and H8S version of divmodsi4 does not clobber S1P or S2P.
+       PUSHP   S0P
+       bsr     divmodsi4
+       POPP    S0P
+       rts
+#endif
 
        .global ___umodsi3
 ___umodsi3:
+#ifdef __H8300__
        PUSHP   S2P
        PUSHP   S0P
        PUSHP   S1P
        mov.b   #0,S2L  ; keep sign low
        bsr     divmodsi4
-#ifdef __H8300__
        mov     S0,A0
        mov     S1,A1
+       bra     exitdiv
 #else
+       ;; H8/300H and H8S version of divmodsi4 does not clobber S1P or S2P.
+       PUSHP   S0P
+       bsr     divmodsi4
        mov.l   S0P,A0P
+       POPP    S0P
+       rts
 #endif
-       bra     exitdiv
 
        .global ___divsi3
 ___divsi3: