xref: /netbsd-src/common/lib/libc/arch/ia64/string/memmove.S (revision b83ebeba7f767758d2778bb0f9d7a76534253621)
1*b83ebebaSscole/*	$NetBSD: memmove.S,v 1.1 2016/08/05 15:06:02 scole Exp $	*/
2*b83ebebaSscole
3*b83ebebaSscole/*-
4*b83ebebaSscole * Copyright (c) 2000 Doug Rabson
5*b83ebebaSscole * All rights reserved.
6*b83ebebaSscole *
7*b83ebebaSscole * Redistribution and use in source and binary forms, with or without
8*b83ebebaSscole * modification, are permitted provided that the following conditions
9*b83ebebaSscole * are met:
10*b83ebebaSscole * 1. Redistributions of source code must retain the above copyright
11*b83ebebaSscole *    notice, this list of conditions and the following disclaimer.
12*b83ebebaSscole * 2. Redistributions in binary form must reproduce the above copyright
13*b83ebebaSscole *    notice, this list of conditions and the following disclaimer in the
14*b83ebebaSscole *    documentation and/or other materials provided with the distribution.
15*b83ebebaSscole *
16*b83ebebaSscole * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17*b83ebebaSscole * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18*b83ebebaSscole * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19*b83ebebaSscole * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20*b83ebebaSscole * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21*b83ebebaSscole * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22*b83ebebaSscole * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23*b83ebebaSscole * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24*b83ebebaSscole * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25*b83ebebaSscole * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26*b83ebebaSscole * SUCH DAMAGE.
27*b83ebebaSscole *
28*b83ebebaSscole * __FBSDID("$FreeBSD: releng/10.1/lib/libc/ia64/string/memmove.S 134743 2004-09-04 00:23:15Z marcel $");
29*b83ebebaSscole *
30*b83ebebaSscole */
31*b83ebebaSscole
32*b83ebebaSscole#include <machine/asm.h>
33*b83ebebaSscole
34*b83ebebaSscole/*
35*b83ebebaSscole * void *
36*b83ebebaSscole * memmove(void *dst, const void *src, size_t len);
37*b83ebebaSscole */
38*b83ebebaSscoleENTRY(memmove,3)
39*b83ebebaSscole	mov	r8 = in0
40*b83ebebaSscole	mov	in0 = in1
41*b83ebebaSscole	;;
42*b83ebebaSscole	mov	in1 = r8
43*b83ebebaSscole	br.sptk.few bcopy
44*b83ebebaSscoleEND(memmove)
45