about summary refs log tree commit diff
path: root/sysdeps/vax/strncat.s
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/vax/strncat.s')
-rw-r--r--sysdeps/vax/strncat.s79
1 files changed, 0 insertions, 79 deletions
diff --git a/sysdeps/vax/strncat.s b/sysdeps/vax/strncat.s
deleted file mode 100644
index 2387d1b1bb..0000000000
--- a/sysdeps/vax/strncat.s
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 1983 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-	.asciz "@(#)strncat.s	5.6 (Berkeley) 6/1/90"
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * Concatenate string s2 on the end of s1
- * and return the base of s1.  The parameter
- * n is the maximum length of string s2 to
- * concatenate.
- *
- * char *
- * strncat(s1, s2, n)
- *	char *s1, *s2;
- *	int n;
- */
-#include "DEFS.h"
-
-ENTRY(strncat, R6)
-	movl	12(ap),r6	# r6 = n
-	bleq	done		# n <= 0
-	movl	4(ap),r3	# r3 = s1
-	movl	r3,r1
-0:
-	locc	$0,$65535,(r1)
-	beql	0b
-	movl	r1,r3		# r3 = index(s1, '\0');
-	movl	8(ap),r1	# r1 = s2
-1:
-	movzwl	$65535,r2	# r2 = bytes in first chunk
-	cmpl	r6,r2		# r2 = min(bytes in chunk, n);
-	jgeq	2f
-	movl	r6,r2
-2:
-	subl2	r2,r6		# update n
-	locc	$0,r2,(r1)	# '\0' found?
-	jneq	3f
-	subl2	r2,r1		# back up pointer updated by locc
-	movc3	r2,(r1),(r3)	# copy in next piece
-	tstl	r6		# run out of space?
-	jneq	1b
-	clrb	(r3)		# force '\0' termination
-	jbr	done
-3:
-	subl2	r0,r2		# r2 = number of bytes to move
-	subl2	r2,r1		# back up pointer updated by locc
-	incl	r2		# copy '\0' as well
-	movc3	r2,(r1),(r3)	# copy in last piece
-done:
-	movl	4(ap),r0	# return s1
-	ret