aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2003-11-13 19:42:03 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2003-11-13 19:42:03 +0000
commit1a679679953633f68b5f69576f172c34e8dc7f07 (patch)
tree92714624f3652d00628919df9c666c71517f8904 /gcc
parent49012f5c0f56b39c22a5bf5cf7a1f3626387eda7 (diff)
downloadgcc-1a679679953633f68b5f69576f172c34e8dc7f07.zip
gcc-1a679679953633f68b5f69576f172c34e8dc7f07.tar.gz
gcc-1a679679953633f68b5f69576f172c34e8dc7f07.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/h8300/lib1funcs.asm17
2 files changed, 21 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 31dfb24..646a7be 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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>
diff --git a/gcc/config/h8300/lib1funcs.asm b/gcc/config/h8300/lib1funcs.asm
index d71a11e..5b16ce3 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: