summaryrefslogtreecommitdiffstats
path: root/lib/libc/amd64/string
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2008-11-02 01:10:54 +0000
committerpeter <peter@FreeBSD.org>2008-11-02 01:10:54 +0000
commitaa63008f13d7a07b62a85c25814374cb77dc7f84 (patch)
tree2cb2d6465da97e37710c7dadb37e63548e7e9c94 /lib/libc/amd64/string
parent4b957256d0a1f1d1f7ae0cd19454ae63f4088568 (diff)
downloadFreeBSD-src-aa63008f13d7a07b62a85c25814374cb77dc7f84.zip
FreeBSD-src-aa63008f13d7a07b62a85c25814374cb77dc7f84.tar.gz
We've been lax about matching END() macros in asm code for some time. This
is used to set the ELF size attribute for functions. It isn't normally critical but some things can make use of it (gdb for stack traces). Valgrind needs it so I'm adding it in. The problem is present on all branches and on both i386 and amd64.
Diffstat (limited to 'lib/libc/amd64/string')
-rw-r--r--lib/libc/amd64/string/bcmp.S1
-rw-r--r--lib/libc/amd64/string/bcopy.S9
-rw-r--r--lib/libc/amd64/string/bzero.S1
-rw-r--r--lib/libc/amd64/string/memcmp.S1
-rw-r--r--lib/libc/amd64/string/memset.S1
-rw-r--r--lib/libc/amd64/string/strcat.S1
-rw-r--r--lib/libc/amd64/string/strcmp.S1
-rw-r--r--lib/libc/amd64/string/strcpy.S1
8 files changed, 16 insertions, 0 deletions
diff --git a/lib/libc/amd64/string/bcmp.S b/lib/libc/amd64/string/bcmp.S
index 36a0c7e..375c3bc 100644
--- a/lib/libc/amd64/string/bcmp.S
+++ b/lib/libc/amd64/string/bcmp.S
@@ -22,3 +22,4 @@ L1:
setne %al
movsbl %al,%eax
ret
+END(bcmp)
diff --git a/lib/libc/amd64/string/bcopy.S b/lib/libc/amd64/string/bcopy.S
index d58f591..f7aa6d1 100644
--- a/lib/libc/amd64/string/bcopy.S
+++ b/lib/libc/amd64/string/bcopy.S
@@ -86,3 +86,12 @@ ENTRY(bcopy)
movsq
cld
ret
+#ifdef MEMCOPY
+END(memcpy)
+#else
+#ifdef MEMMOVE
+END(memmove)
+#else
+END(bcopy)
+#endif
+#endif
diff --git a/lib/libc/amd64/string/bzero.S b/lib/libc/amd64/string/bzero.S
index d9d2a45..0de67d3 100644
--- a/lib/libc/amd64/string/bzero.S
+++ b/lib/libc/amd64/string/bzero.S
@@ -41,3 +41,4 @@ L1: movq %rsi,%rcx /* zero remainder by bytes */
stosb
ret
+END(bzero)
diff --git a/lib/libc/amd64/string/memcmp.S b/lib/libc/amd64/string/memcmp.S
index 28194f8..a039b5b 100644
--- a/lib/libc/amd64/string/memcmp.S
+++ b/lib/libc/amd64/string/memcmp.S
@@ -39,3 +39,4 @@ L6: xorl %eax,%eax /* Perform unsigned comparison */
movb -1(%rsi),%dl
subl %edx,%eax
ret
+END(memcmp)
diff --git a/lib/libc/amd64/string/memset.S b/lib/libc/amd64/string/memset.S
index 142387a..ed8ba24 100644
--- a/lib/libc/amd64/string/memset.S
+++ b/lib/libc/amd64/string/memset.S
@@ -58,3 +58,4 @@ L1: rep
movq %r11,%rax
ret
+END(memset)
diff --git a/lib/libc/amd64/string/strcat.S b/lib/libc/amd64/string/strcat.S
index 78a1b56..b241ffc 100644
--- a/lib/libc/amd64/string/strcat.S
+++ b/lib/libc/amd64/string/strcat.S
@@ -163,3 +163,4 @@ ENTRY(strcat)
.Ldone:
ret
+END(strcat)
diff --git a/lib/libc/amd64/string/strcmp.S b/lib/libc/amd64/string/strcmp.S
index a7d2523..81f54cb 100644
--- a/lib/libc/amd64/string/strcmp.S
+++ b/lib/libc/amd64/string/strcmp.S
@@ -71,3 +71,4 @@ ENTRY(strcmp)
movzbq %dl,%rdx
subq %rdx,%rax
ret
+END(strcmp)
diff --git a/lib/libc/amd64/string/strcpy.S b/lib/libc/amd64/string/strcpy.S
index 04676fa..8cafa12 100644
--- a/lib/libc/amd64/string/strcpy.S
+++ b/lib/libc/amd64/string/strcpy.S
@@ -109,3 +109,4 @@ ENTRY(strcpy)
.Ldone:
ret
+END(strcpy)
OpenPOWER on IntegriCloud