aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
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