arch: Allow named constants as decode case values.
authorGabe Black <gabeblack@google.com>
Thu, 4 Dec 2014 23:52:48 +0000 (15:52 -0800)
committerGabe Black <gabeblack@google.com>
Thu, 4 Dec 2014 23:52:48 +0000 (15:52 -0800)
commit3069c28a021d3f8c29221e537d48ee382c30646f
tree80129e305f4e152c129fa4c2176fe742f0cbd447
parentcca1608bd52a1b8737dddc80a71cb1fa0bd57128
arch: Allow named constants as decode case values.

The values in a "bitfield" or in an ExtMachInst structure member may not be a
literal value, it might select from an arbitrary collection of options. Instead
of using the raw value of those constants in the decoder, it's easier to tell
what's going on if they can be referred to as a symbolic constant/enum.

To support that, the ISA description language is extended slightly so that in
addition to integer literals, the case value for decode blobs can also be a
string literal. It's up to the ISA author to ensure that the string evaluates
to a legal constant value when interpretted as C++.
src/arch/isa_parser.py