x86/xeddata: fix some operand width issues

The XED data has various ways of specifying defaults for operand
widths that we hadn't implemented. Specifically,

- Some operands don't specify a width code at all and it's implied
  from the operand type by the extra-widths table. We weren't parsing
  this table at all, so this adds a parser and uses this table to
  populate the width if it's missing.

- Many width codes have a default xtype. We were already parsing this
  from the widths table, but not populating it in operands.

Change-Id: I5dc9e33e072fe076624ee8695d6627196a30c7f5
Reviewed-on: https://go-review.googlesource.com/c/arch/+/656237
Reviewed-by: Cherry Mui <cherryyz@google.com>
Auto-Submit: Austin Clements <austin@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
6 files changed
tree: b73d94444af2b6b59f3bde817c3ab7fef3ae6ae6
  1. arm/
  2. arm64/
  3. loong64/
  4. ppc64/
  5. riscv64/
  6. s390x/
  7. x86/
  8. codereview.cfg
  9. CONTRIBUTING.md
  10. go.mod
  11. go.sum
  12. LICENSE
  13. PATENTS
  14. README.md
README.md

arch

Go Reference

This repository holds machine architecture information used by the Go toolchain. The parts needed in the main Go repository are copied in.

Report Issues / Send Patches

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.