]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: port memmove, memclr to register ABI on ppc64x
authorLynn Boger <laboger@linux.vnet.ibm.com>
Tue, 28 Sep 2021 19:43:58 +0000 (14:43 -0500)
committerLynn Boger <laboger@linux.vnet.ibm.com>
Tue, 28 Sep 2021 20:40:48 +0000 (20:40 +0000)
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>

src/runtime/memclr_ppc64x.s
src/runtime/memmove_ppc64x.s

index 65639322b2a1cbb3872e16c530e4b35f8a0a36eb..91aa417ca2af76c57f3bedefb70b8f44a11e7172 100644 (file)
 // 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<ABIInternal>(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:
index fd16ad8129b3013010ffec54806304a3fc0949f8..b36b23f8ef3d29c6726e8426f2e096464ffa1cff 100644 (file)
 // number of 32 byte chunks
 #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    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