]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: replaces ANDQ with MOV?ZX
authorAlexandru Moșoi <mosoi@google.com>
Mon, 4 Apr 2016 17:23:41 +0000 (19:23 +0200)
committerAlexandru Moșoi <alexandru@mosoi.ro>
Wed, 6 Apr 2016 20:38:51 +0000 (20:38 +0000)
commit04945edd40fff4d66321a4f98c1bb070b6356008
tree05f88874130128e0bdf11f2fa10d8904508ae6be
parentcdc0ebbebe64d8fa601914945112db306c85c426
cmd/compile: replaces ANDQ with MOV?ZX

Where possible replace ANDQ with MOV?ZX.
Takes care that we don't regress wrt bounds checking,
for example [1000]int{}[i&255].

According to "Intel 64 and IA-32 Architectures Optimization Reference
Manual" Section: "3.5.1.13 Zero-Latency MOV Instructions"
MOV?ZX instructions have zero latency on newer processors.

Updates #15105

Change-Id: I63539fdbc5812d5563aa1ebc49eca035bd307997
Reviewed-on: https://go-review.googlesource.com/21508
Reviewed-by: Айнар Гарипов <gugl.zadolbal@gmail.com>
Reviewed-by: David Chase <drchase@google.com>
src/cmd/compile/internal/ssa/gen/AMD64.rules
src/cmd/compile/internal/ssa/rewriteAMD64.go