* don't reference sections that don't exist (typically happens for
registers that don't contain any fields and are interpreted
numerically.
* allow templates to use override_backref for surpressing the list of
registers that use it
* print doc for fields even when it uses values or only exports a mask
* allow fields to define their own mask; those fields have to define
their values explicitly too, and don't have to provide a shift
* don't print a "No values defined for the field" lines, as there's
always a mask in that case by now.
registers that have the same structure can now use shared value
definitions. the abstraction is kept active through the header
generation; that is, no cartesian product code is generated.
the header file genertion mechanism here is designed to:
* use human readable source data that is better structured and less
repetitive than the header files themselves
* produce same quality header files than the manual process of writing
them. some features were not yet enabled to show that the existing
headers didn't change. (look at emu.h's differences. whitespace
switched from tabs to spaces as they are easier to handle, use
--color-words to see the few differences that stemmed from
inconsistencies in the original file.)
* be less tedious and thus error prone when doing large modifications
(eg, i forgot to add _MASK to bitfields, would like to enable
bitbanding acces, and to overhaul the naming in doxygen modules)