"And probably you should strip out the 'macro' bit there because in reality that's the pre-processor"
I disagree. Looping constructs that typically would be macros in an assembler such as 'while' and 'for' are C constructs. Also, C itself has automatic field offset computations.
A macro for subroutine entry could reserve stack space and define offset constants. A macro for subroutine returning releases the extra space.
It could be neat to use, if the processor architecture has sane addressing modes. (I might have seen/done something similar... doesn't feel like a new idea to me. :-) )
(The entry macro might need a simple preprocessor.)
Disclaimer: C and lower was another life, dimly remembered. :-)
I disagree. Looping constructs that typically would be macros in an assembler such as 'while' and 'for' are C constructs. Also, C itself has automatic field offset computations.