diff options
| author | Andreas Bießmann <andreas.devel@googlemail.com> | 2010-12-01 00:58:34 +0100 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2010-12-09 11:01:15 +0100 | 
| commit | a1a47d3c57e3bc3c49bc1eca94c00eba4880d2c3 (patch) | |
| tree | 0f17f75076e1a8c6ee7d868c3924722a7c803f15 /arch/arm/cpu/arm720t | |
| parent | a78fb68f718383ba7eea410340be66e94cd3540d (diff) | |
| download | olio-uboot-2014.01-a1a47d3c57e3bc3c49bc1eca94c00eba4880d2c3.tar.xz olio-uboot-2014.01-a1a47d3c57e3bc3c49bc1eca94c00eba4880d2c3.zip | |
arm: relocate_code(): do not set register useless
In case we are still at relocation target address before relocation we
do not need to load the registers needed for relocation. We should
instead skip the whole relocation part and jump over to clear_bss
immediately.
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
Diffstat (limited to 'arch/arm/cpu/arm720t')
| -rw-r--r-- | arch/arm/cpu/arm720t/start.S | 4 | 
1 files changed, 2 insertions, 2 deletions
| diff --git a/arch/arm/cpu/arm720t/start.S b/arch/arm/cpu/arm720t/start.S index e3d81597d..84ccaf3a4 100644 --- a/arch/arm/cpu/arm720t/start.S +++ b/arch/arm/cpu/arm720t/start.S @@ -162,12 +162,12 @@ stack_setup:  	mov	sp, r4  	adr	r0, _start +	cmp	r0, r6 +	beq	clear_bss		/* skip relocation */  	mov	r1, r6			/* r1 <- scratch for copy_loop */  	ldr	r2, _TEXT_BASE  	ldr	r3, _bss_start_ofs  	add	r2, r0, r3		/* r2 <- source end address	    */ -	cmp	r0, r6 -	beq	clear_bss  copy_loop:  	ldmia	r0!, {r9-r10}		/* copy from source address [r0]    */ |