aboutsummaryrefslogtreecommitdiff
path: root/libgloss/rl78
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2015-10-20 21:37:06 -0400
committerDJ Delorie <dj@redhat.com>2015-10-20 21:37:06 -0400
commit9e8f75612433be5719b029e8175b2100d97df1db (patch)
tree60fb60280954c8c15508a92687ba3c9c92612d87 /libgloss/rl78
parent67364cbfd92058a32e11331702255e8bec835e37 (diff)
downloadnewlib-9e8f75612433be5719b029e8175b2100d97df1db.zip
newlib-9e8f75612433be5719b029e8175b2100d97df1db.tar.gz
newlib-9e8f75612433be5719b029e8175b2100d97df1db.tar.bz2
* rl78/crt0.S (_start): Fixed code that clears .bss
Diffstat (limited to 'libgloss/rl78')
-rw-r--r--libgloss/rl78/crt0.S22
1 files changed, 12 insertions, 10 deletions
diff --git a/libgloss/rl78/crt0.S b/libgloss/rl78/crt0.S
index fbba093..649178c 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