diff options
author | Marcin Bukat <marcin.bukat@gmail.com> | 2014-01-10 08:56:40 +0100 |
---|---|---|
committer | Marcin Bukat <marcin.bukat@gmail.com> | 2014-01-10 09:01:08 +0100 |
commit | 9cd3444e272bbffc5ca6dcf172577b0e7885a3d2 (patch) | |
tree | e606ccba81fa96bbe21abc5e78ba688566fd762d /firmware/target/arm/rk27xx/crt0.S | |
parent | 837cad0d382e5600e68bb4ed6d499e6053fa50e5 (diff) | |
download | rockbox-9cd3444e272bbffc5ca6dcf172577b0e7885a3d2.tar.gz rockbox-9cd3444e272bbffc5ca6dcf172577b0e7885a3d2.zip |
rk27xx: Implement HAVE_INIT_ATTR magic
This reclaims over 7kB of ram.
Change-Id: I4a89c9a673ada7959311f320900060f6db303c07
Diffstat (limited to 'firmware/target/arm/rk27xx/crt0.S')
-rw-r--r-- | firmware/target/arm/rk27xx/crt0.S | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/firmware/target/arm/rk27xx/crt0.S b/firmware/target/arm/rk27xx/crt0.S index 2a6b2cc329..fb5f02dbdc 100644 --- a/firmware/target/arm/rk27xx/crt0.S +++ b/firmware/target/arm/rk27xx/crt0.S | |||
@@ -149,6 +149,20 @@ entry_point: | |||
149 | strhi r1, [r2], #4 | 149 | strhi r1, [r2], #4 |
150 | bhi 1b | 150 | bhi 1b |
151 | 151 | ||
152 | #ifdef HAVE_INIT_ATTR | ||
153 | /* Copy init section to the codec buffer | ||
154 | * before .bss zeroing | ||
155 | */ | ||
156 | ldr r2, =_initstart | ||
157 | ldr r3, =_initend | ||
158 | ldr r4, =_initcopy | ||
159 | 1: | ||
160 | cmp r3, r2 | ||
161 | ldrhi r1, [r4], #4 | ||
162 | strhi r1, [r2], #4 | ||
163 | bhi 1b | ||
164 | #endif | ||
165 | |||
152 | /* Initialise bss, ibss section to zero */ | 166 | /* Initialise bss, ibss section to zero */ |
153 | ldr r2, =_edata | 167 | ldr r2, =_edata |
154 | ldr r3, =_end | 168 | ldr r3, =_end |