x86/x86asm: support BMI1/BMI2 instructions This CL adds decoding support for BMI (bit manipulation instructions), specifically the VEX-encoded instructions from BMI1 and BMI2: ANDN, BEXTR, BLSI, BLSMSK, BLSR (BMI1) BZHI, MULX, PDEP, PEXT, RORX, SARX, SHLX, SHRX (BMI2) Note: TZCNT is not VEX-encoded and is already supported via x86.csv. I updated avx_tables.go with `XEDPATH=$HOME/src/xed/obj/dgen go generate ./...` and added the output of `go run genavxtests.go` to decode.txt. Tested with the program from issue golang/go#48584: :5 0x47d060 c4e2e0f2c0 ANDNQ AX, BX, AX For golang/go#48584 Change-Id: I0e733499f2d501b5b2ff0476de021ca0c4b1e582 Reviewed-on: https://go-review.googlesource.com/c/arch/+/835785 Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This repository holds machine architecture information used by the Go toolchain. The parts needed in the main Go repository are copied in.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://go.dev/doc/contribute.
The git repository is https://go.googlesource.com/arch.
The main issue tracker for the arch repository is located at https://go.dev/issues. Prefix your issue with “x/arch:” in the subject line, so it is easy to find.