runtime: implement memmove intrinsic

This should fix the following issue:
https://github.com/tinygo-org/tinygo/issues/252
Этот коммит содержится в:
Ayke van Laethem 2019-04-01 13:33:40 +02:00 коммит произвёл Ron Evans
родитель 38f8cf7bee
коммит b64fc5484a

Просмотреть файл

@ -46,10 +46,16 @@ func abort() {
}
}
// Implement memset for compiler-rt.
// Implement memset for LLVM and compiler-rt.
//go:export memset
func memset(ptr unsafe.Pointer, c byte, size uintptr) {
func libc_memset(ptr unsafe.Pointer, c byte, size uintptr) {
for i := uintptr(0); i < size; i++ {
*(*byte)(unsafe.Pointer(uintptr(ptr) + i)) = c
}
}
// Implement memmove for LLVM and compiler-rt.
//go:export memmove
func libc_memmove(dst, src unsafe.Pointer, size uintptr) {
memmove(dst, src, size)
}