]> Cypherpunks repositories - gostls13.git/commit
[dev.regabi] cmd/compile: reserve X15 as zero register on AMD64
authorCherry Zhang <cherryyz@google.com>
Fri, 29 Jan 2021 18:46:34 +0000 (13:46 -0500)
committerCherry Zhang <cherryyz@google.com>
Wed, 3 Feb 2021 22:44:53 +0000 (22:44 +0000)
commit401d7e5a242f1007c2637a25111a6fa985728c08
treeb2fdc485e38b26ed8e83386ba8467f363cf53ae6
parentbfc7418e6d3a505fe348718fd113473c9d92b135
[dev.regabi] cmd/compile: reserve X15 as zero register on AMD64

In ABIInternal, reserve X15 as constant zero, and use it to zero
memory. (Maybe there can be more use of it?)

The register is zeroed when transition to ABIInternal from ABI0.

Caveat: using X15 generates longer instructions than using X0.
Maybe we want to use X0?

Change-Id: I12d5ee92a01fc0b59dad4e5ab023ac71bc2a8b7d
Reviewed-on: https://go-review.googlesource.com/c/go/+/288093
Trust: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
13 files changed:
src/cmd/compile/internal/amd64/ggen.go
src/cmd/compile/internal/amd64/ssa.go
src/cmd/compile/internal/ssa/config.go
src/cmd/compile/internal/ssa/gen/AMD64.rules
src/cmd/compile/internal/ssa/gen/AMD64Ops.go
src/cmd/compile/internal/ssa/op.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/rewriteAMD64.go
src/cmd/compile/internal/ssagen/abi.go
src/cmd/compile/internal/ssagen/ssa.go
src/runtime/duff_amd64.s
src/runtime/mkduff.go
test/codegen/structs.go