From 9e8f75612433be5719b029e8175b2100d97df1db Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Tue, 20 Oct 2015 21:37:06 -0400 Subject: [PATCH] * rl78/crt0.S (_start): Fixed code that clears .bss --- libgloss/ChangeLog | 4 ++++ libgloss/rl78/crt0.S | 22 ++++++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog index be11a3c48..d372c6977 100644 --- a/libgloss/ChangeLog +++ b/libgloss/ChangeLog @@ -1,3 +1,7 @@ +2015-10-20 Kaushik Phatak + + * rl78/crt0.S (_start): Fixed code that clears .bss + 2015-10-06 Nick Clifton * msp430/msp430-sim.ld: Add .persistent section. diff --git a/libgloss/rl78/crt0.S b/libgloss/rl78/crt0.S index fbba093a3..649178c46 100644 --- a/libgloss/rl78/crt0.S +++ b/libgloss/rl78/crt0.S @@ -176,16 +176,18 @@ _start: ;; block fill to .bss - movw bc, #__bsssize - movw ax, #0 -1: - cmpw ax, bc - bz $1f - movw __bssstart[bc], ax - decw bc - decw bc - br $1b -1: + movw bc, #__bsssize + movw ax, #0 + cmpw ax, bc + bz $_bss_zero_done +1: + decw bc + decw bc + movw __bssstart[bc], ax + cmpw ax, bc + bnz $1b + +_bss_zero_done: call !!__rl78_init