]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/internal/obj/arm64: load large constants into vector registers from rodata
authorJoel Sing <joel@sing.id.au>
Sat, 7 Jan 2023 05:26:15 +0000 (16:26 +1100)
committerJoel Sing <joel@sing.id.au>
Fri, 25 Aug 2023 06:31:28 +0000 (06:31 +0000)
commit0a17b2c174dcbe0f30a19be2ca5517ed0660f706
treef69958049c4c99b57699312f901934e04a794187
parenta5ab4a9471d6745b604a0dc480524229106b0728
cmd/internal/obj/arm64: load large constants into vector registers from rodata

Load large constants into vector registers from rodata, instead of placing them
in the literal pool. This treats VMOVQ/VMOVD/VMOVS the same as FMOVD/FMOVS and
makes use of the existing mechanism for storing values in rodata. Two additional
instructions are required for a load, however these instructions are used
infrequently and already have a high latency.

Updates #59615

Change-Id: I54226730267689963d73321e548733ae2d66740e
Reviewed-on: https://go-review.googlesource.com/c/go/+/515617
Reviewed-by: Eric Fang <eric.fang@arm.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Run-TryBot: Joel Sing <joel@sing.id.au>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
src/cmd/internal/obj/arm64/asm7.go
src/cmd/internal/obj/arm64/obj7.go
src/cmd/internal/obj/sym.go