An argument used to define a label within a macro does not work as expected. Consider the following macro:
.macro deflabel
@0:
.endm
One would expect the invocation:
deflabel RightHere
to generate
Righthere:
But it doesn't. This can be gotten around by redefining the macro as:
.macro genlabel
.equ @0 = PC
.endm
So it's not a stopper, but the behavior is...
The attached code snippet shows register aliases being defined, then undefined. Although undefined, re-use of the register generates a warning message and the definition can still be referenced. It seems almost as if .undef does nothing.