aarch64: Remove aarch64_field_kind indirection

Replace all uses of the aarch64_field_kind enum with direct uses of an
aarch64_field struct instead.  Add macro defines mapping the old enum
names to their corresponding aarch64_field values, to reduce the initial
diff.  These can be substituted directly into their uses in subsequent
patches.

Once the macro defines are replaced, this should make it simpler to read
the code, because it will no longer be necessary to look in a separate
table to find out which opcode bits a field actually uses.  This has
been a growing problem over the years - originally there was a simpler
correspondence between field names and positions, but as the
architecture has grown it has become harder to guess a field's position
from it's name alone.
6 files changed