Avra first substitutes the actual argument string(s) into the %0, %1, etc strings of the macro
definition, then evaluates the resulting strings. I can't see a simple way of achieving the same thing in gas.
If I have
r0 = 0
r1 = 1
.macro add16 Rd, Rs
add \Rd, \Rs
adc (\Rd+1), (\Rs+1)
and then write
add16 r0, r2
then gas objects to the expression(s).
How can I achieve the desired (\Rn+1) values in the macro expansion?
I would really like to retain the standard assembler syntax i.e avoid the need to write source code of the form add16(r0, r2) if it is at all possible.