// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package xeddata provides utilities to work with XED datafiles. // // Main features: // - Fundamental XED enumerations (CPU modes, operand sizes, ...) // - XED objects and their components // - XED datafiles reader (see below) // - Utility functions like ExpandStates // // The amount of file formats that is understood is a minimal // set required to generate x86.csv from XED tables: // - states - simple macro substitutions used in patterns // - widths - mappings from width names to their size // - element-types - XED xtype information // - objects - XED objects that constitute "the tables" // // Collectively, those files are called "datafiles". // // Terminology is borrowed from XED itself, // where appropriate, x86csv names are provided // as an alternative. // // "$XED/foo/bar.txt" notation is used to specify a path to "foo/bar.txt" // file under local XED source repository folder. // // The default usage scheme: // 1. Open "XED database" to load required metadata. // 2. Read XED file with objects definitions. // 3. Operate on XED objects. // // See example_test.go for complete examples. // // It is required to build Intel XED before attempting to use // its datafiles, as this package expects "all" versions that // are a concatenated final versions of datafiles. // If "$XED/obj/dgen/" does not contain relevant files, // then either this documentation is stale or your XED is not built. // // To see examples of "XED objects" see "testdata/xed_objects.txt". // // Intel XED https://github.com/intelxed/xed provides all documentation // that can be required to understand datafiles. // The "$XED/misc/engineering-notes.txt" is particularly useful. // For convenience, the most important notes are spread across package comments. // // Tested with XED 088c48a2efa447872945168272bcd7005a7ddd91. package xeddata