Loading arch/sparc/lib/memcpy.S +7 −15 Original line number Diff line number Diff line Loading @@ -13,14 +13,6 @@ .align 4; \ x: /* In kernel these functions don't return a value. * One should use macros in asm/string.h for that purpose. * We return 0, so that bugs are more apparent. */ #define SETUP_RETL #define RETL_INSN clr %o0 /* Both these macros have to start with exactly the same insn */ #define MOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3, t4, t5, t6, t7) \ ldd [%src + (offset) + 0x00], %t0; \ Loading Loading @@ -154,7 +146,7 @@ FUNC(__memmove) #endif FUNC(memmove) cmp %o0, %o1 SETUP_RETL mov %o0, %g7 bleu 9f sub %o0, %o1, %o4 Loading @@ -178,7 +170,7 @@ FUNC(memmove) sub %o0, 1, %o0 retl RETL_INSN mov %g7, %o0 /* NOTE: This code is executed just for the cases, where %src (=%o1) & 3 is != 0. Loading Loading @@ -212,7 +204,7 @@ FUNC(memmove) FUNC(memcpy) /* %o0=dst %o1=src %o2=len */ sub %o0, %o1, %o4 SETUP_RETL mov %o0, %g7 9: andcc %o4, 3, %o5 0: Loading Loading @@ -308,7 +300,7 @@ FUNC(memcpy) /* %o0=dst %o1=src %o2=len */ stb %g2, [%o0] 1: retl RETL_INSN mov %g7, %o0 82: /* ldd_std */ MOVE_BIGALIGNCHUNK(o1, o0, 0x00, o2, o3, o4, o5, g2, g3, g4, g5) Loading Loading @@ -373,7 +365,7 @@ FUNC(memcpy) /* %o0=dst %o1=src %o2=len */ stb %g2, [%o0] 1: retl RETL_INSN mov %g7, %o0 86: /* non_aligned */ cmp %o2, 6 Loading Loading @@ -498,7 +490,7 @@ FUNC(memcpy) /* %o0=dst %o1=src %o2=len */ stb %g2, [%i0 + 4] 1: ret restore %g0, %g0, %o0 restore %g7, %g0, %o0 88: /* short_end */ Loading Loading @@ -529,7 +521,7 @@ FUNC(memcpy) /* %o0=dst %o1=src %o2=len */ stb %g2, [%o0] 1: retl RETL_INSN mov %g7, %o0 90: /* short_aligned_end */ bne 88b Loading Loading
arch/sparc/lib/memcpy.S +7 −15 Original line number Diff line number Diff line Loading @@ -13,14 +13,6 @@ .align 4; \ x: /* In kernel these functions don't return a value. * One should use macros in asm/string.h for that purpose. * We return 0, so that bugs are more apparent. */ #define SETUP_RETL #define RETL_INSN clr %o0 /* Both these macros have to start with exactly the same insn */ #define MOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3, t4, t5, t6, t7) \ ldd [%src + (offset) + 0x00], %t0; \ Loading Loading @@ -154,7 +146,7 @@ FUNC(__memmove) #endif FUNC(memmove) cmp %o0, %o1 SETUP_RETL mov %o0, %g7 bleu 9f sub %o0, %o1, %o4 Loading @@ -178,7 +170,7 @@ FUNC(memmove) sub %o0, 1, %o0 retl RETL_INSN mov %g7, %o0 /* NOTE: This code is executed just for the cases, where %src (=%o1) & 3 is != 0. Loading Loading @@ -212,7 +204,7 @@ FUNC(memmove) FUNC(memcpy) /* %o0=dst %o1=src %o2=len */ sub %o0, %o1, %o4 SETUP_RETL mov %o0, %g7 9: andcc %o4, 3, %o5 0: Loading Loading @@ -308,7 +300,7 @@ FUNC(memcpy) /* %o0=dst %o1=src %o2=len */ stb %g2, [%o0] 1: retl RETL_INSN mov %g7, %o0 82: /* ldd_std */ MOVE_BIGALIGNCHUNK(o1, o0, 0x00, o2, o3, o4, o5, g2, g3, g4, g5) Loading Loading @@ -373,7 +365,7 @@ FUNC(memcpy) /* %o0=dst %o1=src %o2=len */ stb %g2, [%o0] 1: retl RETL_INSN mov %g7, %o0 86: /* non_aligned */ cmp %o2, 6 Loading Loading @@ -498,7 +490,7 @@ FUNC(memcpy) /* %o0=dst %o1=src %o2=len */ stb %g2, [%i0 + 4] 1: ret restore %g0, %g0, %o0 restore %g7, %g0, %o0 88: /* short_end */ Loading Loading @@ -529,7 +521,7 @@ FUNC(memcpy) /* %o0=dst %o1=src %o2=len */ stb %g2, [%o0] 1: retl RETL_INSN mov %g7, %o0 90: /* short_aligned_end */ bne 88b Loading