From: Lynn Boger Date: Tue, 28 Sep 2021 19:43:58 +0000 (-0500) Subject: runtime: port memmove, memclr to register ABI on ppc64x X-Git-Tag: go1.18beta1~1138 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=daec057602d9a18f4464343e66d74b08ea41cce6;p=gostls13.git 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 TryBot-Result: Go Bot Reviewed-by: Cherry Mui Trust: Lynn Boger --- diff --git a/src/runtime/memclr_ppc64x.s b/src/runtime/memclr_ppc64x.s index 65639322b2..91aa417ca2 100644 --- a/src/runtime/memclr_ppc64x.s +++ b/src/runtime/memclr_ppc64x.s @@ -10,9 +10,11 @@ // See memclrNoHeapPointers Go doc for important implementation constraints. // func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr) -TEXT runtime·memclrNoHeapPointers(SB), NOSPLIT|NOFRAME, $0-16 +TEXT runtime·memclrNoHeapPointers(SB), NOSPLIT|NOFRAME, $0-16 +#ifndef GOEXPERIMENT_regabiargs MOVD ptr+0(FP), R3 MOVD n+8(FP), R4 +#endif // Determine if there are doublewords to clear check: diff --git a/src/runtime/memmove_ppc64x.s b/src/runtime/memmove_ppc64x.s index fd16ad8129..b36b23f8ef 100644 --- a/src/runtime/memmove_ppc64x.s +++ b/src/runtime/memmove_ppc64x.s @@ -28,10 +28,12 @@ // number of 32 byte chunks #define QWORDS R10 -TEXT runtime·memmove(SB), NOSPLIT|NOFRAME, $0-24 +TEXT runtime·memmove(SB), NOSPLIT|NOFRAME, $0-24 +#ifndef GOEXPERIMENT_regabiargs MOVD to+0(FP), TGT MOVD from+8(FP), SRC MOVD n+16(FP), LEN +#endif // Determine if there are doublewords to // copy so a more efficient move can be done