Allow rN registers to be simply parsed as correspoing xN registers.
The "register ... asm("rN")" is an command to the
compiler's register allocator, not an operand to any individual assembly
instruction. GCC documents this syntax as "...the name of the register
that should be used."
This is needed to support the changes in Linux kernel (see
https://lkml.org/lkml/2018/3/1/268 )
Note: This will add support only for the limited use case of
register ... asm("rN"). Any other uses that make rN leak into assembly
are not supported.
For x29, x30, you should really be grouping them together. For instance:
{{"r29", "fp"}, "x29}, {{"r30", "lr"}, "x30"}
This lets you remove the x29/fp and x30/lr from the first line.