aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2003-11-14 20:39:30 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2003-11-14 20:39:30 +0000
commit584fb00b96cf6f2527330615fee9caf820cd136b (patch)
tree2a0a2818c14df1ee1c7dfbd4b0417e28557c9924
parent2a91b33cb0c4c3e3c4bdd25a885c87c3f3721313 (diff)
downloadgcc-584fb00b96cf6f2527330615fee9caf820cd136b.zip
gcc-584fb00b96cf6f2527330615fee9caf820cd136b.tar.gz
gcc-584fb00b96cf6f2527330615fee9caf820cd136b.tar.bz2
lib1funcs.asm (___udivsi3): Peel off the first iteration.
* config/h8300/lib1funcs.asm (___udivsi3): Peel off the first iteration. From-SVN: r73620
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/h8300/lib1funcs.asm5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3725a1c..44b6690 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-11-14 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/lib1funcs.asm (___udivsi3): Peel off the first
+ iteration.
+
2003-11-14 Fariborz Jahanian <fjahanian@apple.com>
* config/rs6000/rs6000.c (rs6000_move_block_from_reg):
diff --git a/gcc/config/h8300/lib1funcs.asm b/gcc/config/h8300/lib1funcs.asm
index 44d3990..744d402 100644
--- a/gcc/config/h8300/lib1funcs.asm
+++ b/gcc/config/h8300/lib1funcs.asm
@@ -633,13 +633,16 @@ divmod_L21:
mov.w e2,e2
bne divmod_L21
#else
- bra divmod_L22
+ shlr.l #2,er2 ; make divisor < 2^16
+ mov.w e2,e2
+ beq divmod_L22A
divmod_L21:
shlr.l #2,er0
divmod_L22:
shlr.l #2,er2 ; make divisor < 2^16
mov.w e2,e2
bne divmod_L21
+divmod_L22A:
rotxl.w r2
bcs divmod_L23
shlr.l er0