aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authordj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2015-10-16 21:47:07 +0000
committerdj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2015-10-16 21:47:07 +0000
commit2ee6cfdbdb2b050dfc101271023a91e33998808b (patch)
treec398b887195322f1d38d190de46657c45b212975 /libgcc
parentaa99c148e08af989a7ca215dac6b10e5cc0fd9ce (diff)
* config/rl78/divmodqi.S: Return 0x00 by default for div by 0.
* config/rl78/divmodsi.S: Update return register to r8. * config/rl78/divmodhi.S: Update return register to r8,r9. Branch to main_loop_done_himode to pop registers before return. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228926 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog7
-rw-r--r--libgcc/config/rl78/divmodhi.S4
-rw-r--r--libgcc/config/rl78/divmodqi.S2
-rw-r--r--libgcc/config/rl78/divmodsi.S7
4 files changed, 18 insertions, 2 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 8676747211c..d63a1716367 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,10 @@
+2015-10-16 Kaushik Phatak <kaushik.phatak@kpit.com>
+
+ * config/rl78/divmodqi.S: Return 0x00 by default for div by 0.
+ * config/rl78/divmodsi.S: Update return register to r8.
+ * config/rl78/divmodhi.S: Update return register to r8,r9.
+ Branch to main_loop_done_himode to pop registers before return.
+
2015-10-09 Venkataramanan kumar <venkataramanan.kumar@amd.com>
* config/i386/cpuinfo.c (get_amd_cpu): Detect bdver4.
diff --git a/libgcc/config/rl78/divmodhi.S b/libgcc/config/rl78/divmodhi.S
index adf91e2c9e6..4340f1828e5 100644
--- a/libgcc/config/rl78/divmodhi.S
+++ b/libgcc/config/rl78/divmodhi.S
@@ -454,7 +454,11 @@ __generic_himod:
movw ax, den
cmpw ax, #0
bnz $den_not_zero\which
+ .if \need_result
+ movw quot, #0
+ .else
movw num, #0
+ .endif
ret
den_not_zero\which:
diff --git a/libgcc/config/rl78/divmodqi.S b/libgcc/config/rl78/divmodqi.S
index b505336bee0..667923809fb 100644
--- a/libgcc/config/rl78/divmodqi.S
+++ b/libgcc/config/rl78/divmodqi.S
@@ -63,7 +63,7 @@ num_eq_den\which:
ret
den_is_zero\which:
- mov r8, #0xff
+ mov r8, #0x00
ret
;; These routines leave DE alone - the signed functions use DE
diff --git a/libgcc/config/rl78/divmodsi.S b/libgcc/config/rl78/divmodsi.S
index 987a9e31126..94bad1e6ca0 100644
--- a/libgcc/config/rl78/divmodsi.S
+++ b/libgcc/config/rl78/divmodsi.S
@@ -688,9 +688,14 @@ __generic_simod:
or a, denB3 ; not x
cmpw ax, #0
bnz $den_not_zero\which
+ .if \need_result
+ movw quotL, #0
+ movw quotH, #0
+ .else
movw numL, #0
movw numH, #0
- ret
+ .endif
+ br $!main_loop_done_himode\which
den_not_zero\which:
.if \need_result