]> Cypherpunks repositories - gostls13.git/commit
cmd/internal/obj/x86: add AVX2 gather and VSIB
authorisharipo <iskander.sharipov@intel.com>
Wed, 15 Nov 2017 17:56:10 +0000 (20:56 +0300)
committerIlya Tocar <ilya.tocar@intel.com>
Fri, 17 Nov 2017 21:17:58 +0000 (21:17 +0000)
commit4e19cfcdf2ff316cc14357516c01f30722f19000
tree6d4fd7d0a67732b1f1a02a9b1b2d3d1b6575ea0d
parent3a395e22832774ff56d6b82cb8d91bc31167bd8e
cmd/internal/obj/x86: add AVX2 gather and VSIB

Enables AVX2 gather instructions and VSIB support,
which makes vm32{x,y} vm64{x,y} operands encodable.

AXXX constants placed with respect to sorting order.
New VEX optabs inserted near non-VEX entries to simplify
potential transition to auto-generated VSIB optabs.

Tests go into new AMD64 encoder test file (amd64enc_extra.s)
to avoid unnecessary interactions with auto-generated "amd64enc.s".

Side note: x86avxgen did not produced these instructions
because x86.v0.2.csv misses them.
This also explains why x86 test suite have no AVX2 gather
instructions tests.

List of new instructions:
  VGATHERPDP
  VGATHERDPS
  VGATHERQPD
  VGATHERQPS
  VPGATHERDD
  VPGATHERDQ
  VPGATHERQD
  VPGATHERQQ

Change-Id: Iac852f3c5016523670bd99de6bec6a48f66fb4f6
Reviewed-on: https://go-review.googlesource.com/77970
Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ilya Tocar <ilya.tocar@intel.com>
src/cmd/asm/internal/asm/endtoend_test.go
src/cmd/asm/internal/asm/testdata/amd64enc_extra.s [new file with mode: 0644]
src/cmd/asm/internal/asm/testdata/amd64error.s
src/cmd/internal/obj/x86/aenum.go
src/cmd/internal/obj/x86/anames.go
src/cmd/internal/obj/x86/asm6.go