diff options
author | alc <alc@FreeBSD.org> | 2005-04-08 05:10:18 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2005-04-08 05:10:18 +0000 |
commit | 02ae1b51e33e2dbff717a4bb175ba71166ac3563 (patch) | |
tree | 0eae32a04677340b621d1a4550f4b618ac3ca337 /lib/libc/amd64/string | |
parent | 7e0854e7cdcb93f66159d0523305ef1797de2670 (diff) | |
download | FreeBSD-src-02ae1b51e33e2dbff717a4bb175ba71166ac3563.zip FreeBSD-src-02ae1b51e33e2dbff717a4bb175ba71166ac3563.tar.gz |
Eliminate unneeded instructions that are a vestige of mechanical
translation from i386.
Diffstat (limited to 'lib/libc/amd64/string')
-rw-r--r-- | lib/libc/amd64/string/bcopy.S | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/lib/libc/amd64/string/bcopy.S b/lib/libc/amd64/string/bcopy.S index 8289e96..d58f591 100644 --- a/lib/libc/amd64/string/bcopy.S +++ b/lib/libc/amd64/string/bcopy.S @@ -51,14 +51,14 @@ ENTRY(bcopy) #endif #endif #if defined(MEMCOPY) || defined(MEMMOVE) - movq %rdi,%r11 /* save dest */ + movq %rdi,%rax /* return dst */ #else xchgq %rdi,%rsi #endif movq %rdx,%rcx - movq %rdi,%rax - subq %rsi,%rax - cmpq %rcx,%rax /* overlapping? */ + movq %rdi,%r8 + subq %rsi,%r8 + cmpq %rcx,%r8 /* overlapping? */ jb 1f cld /* nope, copy forwards. */ shrq $3,%rcx /* copy by words */ @@ -68,9 +68,6 @@ ENTRY(bcopy) andq $7,%rcx /* any bytes left? */ rep movsb -#if defined(MEMCOPY) || defined(MEMMOVE) - movq %r11,%rax -#endif ret 1: addq %rcx,%rdi /* copy backwards. */ @@ -87,8 +84,5 @@ ENTRY(bcopy) subq $7,%rdi rep movsq -#if defined(MEMCOPY) || defined(MEMMOVE) - movq %r11,%rax -#endif cld ret |