1
0
mirror of https://github.com/golang/go synced 2024-09-29 14:24:32 -06:00

runtime: port memmove, memclr to register ABI on ppc64x

This allows memmove and memclr to be invoked using the new
register ABI on ppc64x.

Change-Id: Ie397a942d7ebf76f62896924c3bb5b3a3dbba73e
Reviewed-on: https://go-review.googlesource.com/c/go/+/352891
Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Trust: Lynn Boger <laboger@linux.vnet.ibm.com>
This commit is contained in:
Lynn Boger 2021-09-28 14:43:58 -05:00
parent e7a2573169
commit daec057602
2 changed files with 6 additions and 2 deletions

View File

@ -10,9 +10,11 @@
// See memclrNoHeapPointers Go doc for important implementation constraints. // See memclrNoHeapPointers Go doc for important implementation constraints.
// func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr) // func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr)
TEXT runtime·memclrNoHeapPointers(SB), NOSPLIT|NOFRAME, $0-16 TEXT runtime·memclrNoHeapPointers<ABIInternal>(SB), NOSPLIT|NOFRAME, $0-16
#ifndef GOEXPERIMENT_regabiargs
MOVD ptr+0(FP), R3 MOVD ptr+0(FP), R3
MOVD n+8(FP), R4 MOVD n+8(FP), R4
#endif
// Determine if there are doublewords to clear // Determine if there are doublewords to clear
check: check:

View File

@ -28,10 +28,12 @@
// number of 32 byte chunks // number of 32 byte chunks
#define QWORDS R10 #define QWORDS R10
TEXT runtime·memmove(SB), NOSPLIT|NOFRAME, $0-24 TEXT runtime·memmove<ABIInternal>(SB), NOSPLIT|NOFRAME, $0-24
#ifndef GOEXPERIMENT_regabiargs
MOVD to+0(FP), TGT MOVD to+0(FP), TGT
MOVD from+8(FP), SRC MOVD from+8(FP), SRC
MOVD n+16(FP), LEN MOVD n+16(FP), LEN
#endif
// Determine if there are doublewords to // Determine if there are doublewords to
// copy so a more efficient move can be done // copy so a more efficient move can be done