diff options
author | Cherry Zhang <cherryyz@google.com> | 2016-09-27 08:57:02 -0400 |
---|---|---|
committer | Cherry Zhang <cherryyz@google.com> | 2016-09-27 15:07:31 +0000 |
commit | 9d4b40f55d2298fcb69e049b031e2e3ce8a1de8c (patch) | |
tree | fe9e561d0fd27de03b66be9fc64dac1d8a308572 /src/runtime/duff_arm64.s | |
parent | 7de7d20e9f14c3a8fb9a3bcf6a36a299c74e9ddd (diff) | |
download | go-9d4b40f55d2298fcb69e049b031e2e3ce8a1de8c.tar.gz go-9d4b40f55d2298fcb69e049b031e2e3ce8a1de8c.zip |
runtime, cmd/compile: implement and use DUFFCOPY on ARM64
Change-Id: I8984eac30e5df78d4b94f19412135d3cc36969f8
Reviewed-on: https://go-review.googlesource.com/29910
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/runtime/duff_arm64.s')
-rw-r--r-- | src/runtime/duff_arm64.s | 387 |
1 files changed, 386 insertions, 1 deletions
diff --git a/src/runtime/duff_arm64.s b/src/runtime/duff_arm64.s index 6d4bb15dd6..5a147faec0 100644 --- a/src/runtime/duff_arm64.s +++ b/src/runtime/duff_arm64.s @@ -135,4 +135,389 @@ TEXT runtime·duffzero(SB), NOSPLIT, $-8-0 MOVD.W ZR, 8(R16) RET -// TODO: Implement runtime·duffcopy. +TEXT runtime·duffcopy(SB), NOSPLIT, $0-0 + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + MOVD.P 8(R16), R27 + MOVD.P R27, 8(R17) + + RET |