summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2004-09-04 00:04:58 +0000
committermarcel <marcel@FreeBSD.org>2004-09-04 00:04:58 +0000
commita035e5e43cb3be0164f53aa450d686b7a1c09112 (patch)
tree2eb2be7d84b2b550b113749c544411b92ddf7c05
parent1ac4ce85a120374b52ae27952d3198c2b1ce54e7 (diff)
downloadFreeBSD-src-a035e5e43cb3be0164f53aa450d686b7a1c09112.zip
FreeBSD-src-a035e5e43cb3be0164f53aa450d686b7a1c09112.tar.gz
Unbreak memcpy(). memcpy() is defined to return the dst argument.
By using r8 instead of r14 to do the swap, we put the dst argument in the return register. Since bcopy() doesn't clobber r8, we don't have to do anything else. This fixes ports/textproc/aspell.
-rw-r--r--lib/libc/ia64/string/memcpy.S11
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/libc/ia64/string/memcpy.S b/lib/libc/ia64/string/memcpy.S
index d9937fb..d7557c1 100644
--- a/lib/libc/ia64/string/memcpy.S
+++ b/lib/libc/ia64/string/memcpy.S
@@ -28,10 +28,9 @@
__FBSDID("$FreeBSD$");
ENTRY(memcpy,3)
-
- mov r14=in0 ;;
- mov in0=in1 ;;
- mov in1=r14
- br.cond.sptk.few bcopy
-
+ mov r8 = in0
+ mov in0 = in1
+ ;;
+ mov in1 = r8
+ br.sptk.few bcopy
END(memcpy)
OpenPOWER on IntegriCloud