diff options
| author | Andreas Bießmann <andreas.devel@googlemail.com> | 2010-12-01 00:58:33 +0100 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2010-12-09 11:01:14 +0100 | 
| commit | a78fb68f718383ba7eea410340be66e94cd3540d (patch) | |
| tree | a5e41668b607603d00aeed96d07b718cc308db3e /arch/arm/cpu/arm720t/start.S | |
| parent | bb141079d34bebb073c5b0566313e1441973ec01 (diff) | |
| download | olio-uboot-2014.01-a78fb68f718383ba7eea410340be66e94cd3540d.tar.xz olio-uboot-2014.01-a78fb68f718383ba7eea410340be66e94cd3540d.zip | |
arm: copy_loop(): use scratch register
This patch uses r1 as scratch register for copy_loop(). Therefore we do
not longer need r7 for the storage of relocate_code()'s 'addr_moni' (the
destination address of relocation).
Therefore r7 can be used later on for other purposes.
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
Diffstat (limited to 'arch/arm/cpu/arm720t/start.S')
| -rw-r--r-- | arch/arm/cpu/arm720t/start.S | 10 | 
1 files changed, 5 insertions, 5 deletions
| diff --git a/arch/arm/cpu/arm720t/start.S b/arch/arm/cpu/arm720t/start.S index da0e61e6d..e3d81597d 100644 --- a/arch/arm/cpu/arm720t/start.S +++ b/arch/arm/cpu/arm720t/start.S @@ -156,13 +156,13 @@ relocate_code:  	mov	r4, r0	/* save addr_sp */  	mov	r5, r1	/* save addr of gd */  	mov	r6, r2	/* save addr of destination */ -	mov	r7, r2	/* save addr of destination */  	/* Set up the stack						    */  stack_setup:  	mov	sp, r4  	adr	r0, _start +	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	    */ @@ -171,7 +171,7 @@ stack_setup:  copy_loop:  	ldmia	r0!, {r9-r10}		/* copy from source address [r0]    */ -	stmia	r6!, {r9-r10}		/* copy to   target address [r1]    */ +	stmia	r1!, {r9-r10}		/* copy to   target address [r1]    */  	cmp	r0, r2			/* until source end address [r2]    */  	blo	copy_loop @@ -180,7 +180,7 @@ copy_loop:  	 * fix .rel.dyn relocations  	 */  	ldr	r0, _TEXT_BASE		/* r0 <- Text base */ -	sub	r9, r7, r0		/* r9 <- relocation offset */ +	sub	r9, r6, r0		/* r9 <- relocation offset */  	ldr	r10, _dynsym_start_ofs	/* r10 <- sym table ofs */  	add	r10, r10, r0		/* r10 <- sym table in FLASH */  	ldr	r2, _rel_dyn_start_ofs	/* r2 <- rel dyn start ofs */ @@ -221,7 +221,7 @@ clear_bss:  	ldr	r0, _bss_start_ofs  	ldr	r1, _bss_end_ofs  	ldr	r3, _TEXT_BASE		/* Text base */ -	mov	r4, r7			/* reloc addr */ +	mov	r4, r6			/* reloc addr */  	add	r0, r0, r4  	add	r1, r1, r4  	mov	r2, #0x00000000		/* clear			    */ @@ -245,7 +245,7 @@ clbss_l:str	r2, [r0]		/* clear loop...		    */  	add	lr, lr, r9  	/* setup parameters for board_init_r */  	mov	r0, r5		/* gd_t */ -	mov	r1, r7		/* dest_addr */ +	mov	r1, r6		/* dest_addr */  	/* jump to it ... */  	mov	pc, lr |