]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: use OpMove instead of memmove more on arm64
authorKeith Randall <khr@golang.org>
Thu, 24 Apr 2025 21:34:10 +0000 (14:34 -0700)
committerKeith Randall <khr@golang.org>
Thu, 15 May 2025 21:06:16 +0000 (14:06 -0700)
commit11fa0de475f9446870bc086bfb42cb67bac40634
tree204f5c411e026231518fe8b592eee44c57c0c1f9
parentfc641e7fae1b09e25402bc73660d2deea51c2ad6
cmd/compile: use OpMove instead of memmove more on arm64

OpMove is faster for small moves of fixed size.

For safety, we have to rewrite the Move rewrite rules a bit so that
all the loads are done before any stores happen.

Also use an 8-byte move instead of a 16-byte move if the tail is
at most 8 bytes.

Change-Id: I7f6c7496ac6d5eb2e0706fd59ca4b5d797c51101
Reviewed-on: https://go-review.googlesource.com/c/go/+/672997
Reviewed-by: Keith Randall <khr@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: David Chase <drchase@google.com>
src/cmd/compile/internal/ssa/_gen/ARM64.rules
src/cmd/compile/internal/ssa/rewrite.go
src/cmd/compile/internal/ssa/rewriteARM64.go