From 7c4dd542551dc146b6e3da0c1b519d95dd124d6c Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Tue, 27 Jan 2015 15:10:37 +0100 Subject: microblaze: Speedup code copy Remove one instruction in the loop which speedup code copying. Signed-off-by: Michal Simek --- arch/microblaze/cpu/start.S | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'arch/microblaze') diff --git a/arch/microblaze/cpu/start.S b/arch/microblaze/cpu/start.S index 3de0e12090..4023ec0675 100644 --- a/arch/microblaze/cpu/start.S +++ b/arch/microblaze/cpu/start.S @@ -212,12 +212,14 @@ relocate_code: /* Relocate text and data - r12 temp value */ addi r21, r0, _start addi r22, r0, __end - 4 /* Include BSS too */ -1: lwi r12, r21, 0 /* Load u-boot data */ - swi r12, r23, 0 /* Write zero to loc */ - addi r21, r21, 4 /* Increment to next loc - origin code */ - cmp r12, r21, r22 /* Check if we have reach the end */ + + rsub r6, r21, r22 + or r5, r0, r0 +1: lw r12, r21, r5 /* Load u-boot data */ + sw r12, r23, r5 /* Write zero to loc */ + cmp r12, r5, r6 /* Check if we have reach the end */ bneid r12, 1b - addi r23, r23, 4 /* Increment to next loc - relocate code */ + addi r5, r5, 4 /* Increment to next loc - relocate code */ /* R23 points to the base address. */ add r23, r0, r7 /* Move reloc addr to r23 */ -- cgit v1.2.3