From 793aa938bd0d3dae1027c0bd175f289948d847a8 Mon Sep 17 00:00:00 2001 From: Kaushik Phatak Date: Fri, 16 Oct 2015 21:47:07 +0000 Subject: [PATCH] divmodqi.S: Return 0x00 by default for div by 0. * 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. From-SVN: r228926 --- libgcc/ChangeLog | 7 +++++++ libgcc/config/rl78/divmodhi.S | 4 ++++ libgcc/config/rl78/divmodqi.S | 2 +- libgcc/config/rl78/divmodsi.S | 7 ++++++- 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 + + * 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 * 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 -- 2.30.2