riscv: memcpy: check src and dst before copy
authorRick Chen <rick@andestech.com>
Wed, 4 Jan 2023 01:56:28 +0000 (09:56 +0800)
committerLeo Yu-Chi Liang <ycliang@andestech.com>
Wed, 1 Feb 2023 08:17:45 +0000 (16:17 +0800)
Add src and dst address checking, if they
are the same address, just return and don't
copy data anymore.

Signed-off-by: Rick Chen <rick@andestech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
arch/riscv/lib/memcpy.S

index 00672c1..9884077 100644 (file)
@@ -9,6 +9,7 @@
 /* void *memcpy(void *, const void *, size_t) */
 ENTRY(__memcpy)
 WEAK(memcpy)
+       beq     a0, a1, .copy_end
        /* Save for return value */
        mv      t6, a0
 
@@ -121,6 +122,7 @@ WEAK(memcpy)
 2:
 
        mv      a0, t6
+.copy_end:
        ret
 
 .Lmisaligned_word_copy: