]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: use shlx&shrx instruction for GOAMD64>=v3
authorWayne Zuo <wdvxdr1123@gmail.com>
Wed, 2 Mar 2022 08:32:16 +0000 (16:32 +0800)
committerKeith Randall <khr@golang.org>
Mon, 4 Apr 2022 20:07:23 +0000 (20:07 +0000)
commit7fbabe8d57de184c75bc938fa619235711bc4229
treed3fb18f4bcafc1d1c1e8f2146f82ecb0cd17cf04
parent6f1dce0fcb03f22402dac00f66a42b8b0f5bef2b
cmd/compile: use shlx&shrx instruction for GOAMD64>=v3

The SHRX/SHLX instruction can take any general register as the shift count operand, and can read source from memory. This CL introduces some operators to combine load and shift to one instruction.

For #47120

Change-Id: I13b48f53c7d30067a72eb2c8382242045dead36a
Reviewed-on: https://go-review.googlesource.com/c/go/+/385174
Reviewed-by: Keith Randall <khr@golang.org>
Trust: Cherry Mui <cherryyz@google.com>
src/cmd/compile/internal/amd64/ssa.go
src/cmd/compile/internal/ssa/addressingmodes.go
src/cmd/compile/internal/ssa/gen/AMD64.rules
src/cmd/compile/internal/ssa/gen/AMD64Ops.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/rewriteAMD64.go
test/codegen/bmi.go