From 1a679679953633f68b5f69576f172c34e8dc7f07 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Thu, 13 Nov 2003 19:42:03 +0000 Subject: [PATCH] lib1funcs.asm (udivsi3): Don't save/restore unused registers. * config/h8300/lib1funcs.asm (udivsi3): Don't save/restore unused registers. Don't jump to exitdiv. (umodsi3): Likewise. From-SVN: r73555 --- gcc/ChangeLog | 6 ++++++ gcc/config/h8300/lib1funcs.asm | 17 +++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 31dfb24199b..646a7be8a31 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-11-13 Kazu Hirata + + * config/h8300/lib1funcs.asm (udivsi3): Don't save/restore + unused registers. Don't jump to exitdiv. + (umodsi3): Likewise. + 2003-11-13 Mark Mitchell Kean Johnston diff --git a/gcc/config/h8300/lib1funcs.asm b/gcc/config/h8300/lib1funcs.asm index d71a11e65ce..5b16ce3074f 100644 --- a/gcc/config/h8300/lib1funcs.asm +++ b/gcc/config/h8300/lib1funcs.asm @@ -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: -- 2.30.2