]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: redo flag constant ops for arm
authorKeith Randall <khr@golang.org>
Mon, 15 Jun 2020 21:43:02 +0000 (14:43 -0700)
committerKeith Randall <khr@golang.org>
Thu, 18 Jun 2020 20:57:49 +0000 (20:57 +0000)
commit40ef1faabc44ab8ea28a1cf282ecab723ecb0394
tree1c04bdc4b2eb3226759499dd6867c6771510ba75
parent377c1536f548ae6295699475683db7574bea3d51
cmd/compile: redo flag constant ops for arm

Encode the flag results in an auxint field instead of having
one opcode per flag state. This helps us handle the new *noov
branches in a unified manner.

This is only for arm, arm64 is in a subsequent CL.

We could extend to other architectures as well, athough it would
only be cleanup, no behavioral change.

Update #39505

Change-Id: Ia46cea596faad540d1496c5915ab1274571543f0
Reviewed-on: https://go-review.googlesource.com/c/go/+/238077
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
15 files changed:
src/cmd/compile/fmtmap_test.go
src/cmd/compile/internal/arm/ssa.go
src/cmd/compile/internal/ssa/check.go
src/cmd/compile/internal/ssa/flags_amd64_test.s [new file with mode: 0644]
src/cmd/compile/internal/ssa/flags_arm64_test.s [new file with mode: 0644]
src/cmd/compile/internal/ssa/flags_test.go [new file with mode: 0644]
src/cmd/compile/internal/ssa/gen/ARM.rules
src/cmd/compile/internal/ssa/gen/ARMOps.go
src/cmd/compile/internal/ssa/gen/rulegen.go
src/cmd/compile/internal/ssa/op.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/rewrite.go
src/cmd/compile/internal/ssa/rewriteARM.go
src/cmd/compile/internal/ssa/rewrite_test.go
src/cmd/compile/internal/ssa/value.go