From: Igor Guryanov Date: Tue, 3 Feb 2015 10:58:09 +0000 (+0300) Subject: arc: memcmp - fix zero-delay loop utilization X-Git-Tag: v2015.04-rc2~37^2~11 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f958a91fa5cefd0cda76c887ee0488fb9158496e;p=oweals%2Fu-boot.git arc: memcmp - fix zero-delay loop utilization It's prohibited to put branch instruction in the very end of zero-delay loop. On execution this causes "Illegal instruction" exception. Signed-off-by: Alexey Brodkin Signed-off-by: Igor Guryanov --- diff --git a/arch/arc/lib/memcmp.S b/arch/arc/lib/memcmp.S index fa5aac5f67..87bccab51d 100644 --- a/arch/arc/lib/memcmp.S +++ b/arch/arc/lib/memcmp.S @@ -29,6 +29,7 @@ memcmp: ld.a %r4, [%r0, 8] ld.a %r5, [%r1, 8] brne WORD2, %r12, .Lodd + nop .Loop_end: asl_s SHIFT, SHIFT, 3 bhs_s .Last_cmp @@ -105,6 +106,7 @@ memcmp: ldb.a %r4, [%r0, 2] ldb.a %r5, [%r1, 2] brne %r3, %r12, .Lbyte_odd + nop .Lbyte_end: bcc .Lbyte_even brne %r4, %r5, .Lbyte_even