2010-12-17 07:33:41 +01:00
|
|
|
/* go-append.c -- the go builtin copy function.
|
|
|
|
|
|
|
|
Copyright 2010 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 <stddef.h>
|
2011-04-13 23:00:59 +02:00
|
|
|
#include <stdint.h>
|
2010-12-17 07:33:41 +01:00
|
|
|
|
|
|
|
/* We should be OK if we don't split the stack here, since we are just
|
|
|
|
calling memmove which shouldn't need much stack. If we don't do
|
|
|
|
this we will always split the stack, because of memmove. */
|
|
|
|
|
|
|
|
extern void
|
2011-04-13 23:00:59 +02:00
|
|
|
__go_copy (void *, void *, uintptr_t)
|
2010-12-17 07:33:41 +01:00
|
|
|
__attribute__ ((no_split_stack));
|
|
|
|
|
|
|
|
void
|
2011-04-13 23:00:59 +02:00
|
|
|
__go_copy (void *a, void *b, uintptr_t len)
|
2010-12-17 07:33:41 +01:00
|
|
|
{
|
|
|
|
__builtin_memmove (a, b, len);
|
|
|
|
}
|