// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

#include "textflag.h"

// This could use MOVSQ, but we use MOVSL so that if an object ends in
// a 4 byte pointer, we copy it as a unit instead of byte by byte.

// func memmove(to, from unsafe.Pointer, n uintptr)
TEXT runtime·memmove(SB), NOSPLIT, $0-12
	MOVL	to+0(FP), DI
	MOVL	from+4(FP), SI
	MOVL	n+8(FP), BX

	CMPL	SI, DI
	JLS back

forward:
	MOVL	BX, CX
	SHRL	$2, CX
	ANDL	$3, BX
	REP; MOVSL
	MOVL	BX, CX
	REP; MOVSB
	RET

back:
	MOVL	SI, CX
	ADDL	BX, CX
	CMPL	CX, DI
	JLS forward

	ADDL	BX, DI
	ADDL	BX, SI
	STD

	MOVL	BX, CX
	SHRL	$2, CX
	ANDL	$3, BX
	SUBL	$4, DI
	SUBL	$4, SI
	REP; MOVSL
	ADDL	$3, DI
	ADDL	$3, SI
	MOVL	BX, CX
	REP; MOVSB
	CLD

	// Note: we copy only 4 bytes at a time so that the tail is at most
	// 3 bytes. That guarantees that we aren't copying pointers with MOVSB.
	// See issue 13160.
	RET
