diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/h8300/lib1funcs.asm | 14 |
2 files changed, 17 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c02bc9b..ef766e5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2003-11-14 Kazu Hirata <kazu@cs.umass.edu> + + * config/h8300/lib1funcs.asm (modsi3): Don't save unused + registers. + (divsi3): Likewise. + (reti): Don't restore unused registers. + 2003-11-14 Nick Clifton <nickc@redhat.com> * config/fr30/fr30.c: Include toplev.h diff --git a/gcc/config/h8300/lib1funcs.asm b/gcc/config/h8300/lib1funcs.asm index cc79e35..cf9689f 100644 --- a/gcc/config/h8300/lib1funcs.asm +++ b/gcc/config/h8300/lib1funcs.asm @@ -432,20 +432,22 @@ mpostive2: ; denominator in A2/A3 .global ___modsi3 ___modsi3: +#ifdef __H8300__ PUSHP S2P PUSHP S0P PUSHP S1P - bsr modnorm -#ifdef __H8300__ bsr divmodsi4 mov S0,A0 mov S1,A1 + bra exitdiv #else + PUSHP S2P + bsr modnorm bsr ___udivsi3 mov.l er3,er0 -#endif bra exitdiv +#endif ;; H8/300H and H8S version of ___udivsi3 is defined later in ;; the file. @@ -477,13 +479,15 @@ ___umodsi3: .global ___divsi3 ___divsi3: +#ifdef __H8300__ PUSHP S2P PUSHP S0P PUSHP S1P jsr divnorm -#ifdef __H8300__ jsr divmodsi4 #else + PUSHP S2P + jsr divnorm bsr ___udivsi3 #endif @@ -508,8 +512,10 @@ exitdiv: #endif reti: +#ifdef __H8300__ POPP S1P POPP S0P +#endif POPP S2P rts |