$ cat RC4.s.m4 m4_include(macros.m4)m4_dnl NEWFUNC(testfunc) DEFVAR(INT64, theInt) DEFVAR(INT32, theSmallInt) DEFVAR(ARRAY, INT8, 256, theArray) START_FUNC movq $256, %rcx xorq %rax, %rax testfunc_loop_start: movb %al, V_theArray(%rax) incq %rax decq %rcx jnz testfunc_loop_start movq $50, %rax movb V_theArray(%rax), %al END_FUNC $ m4 -P RC4.s.m4 .globl testfunc .type testfunc, @function testfunc: # INT64 theInt = -8(%rbp) # INT32 theSmallInt = -12(%rbp) # INT8 theArray[256] = -268(%rbp) pushq %rbp movq %rsp, %rbp subq $268, %rsp movq $256, %rcx xorq %rax, %rax testfunc_loop_start: movb %al, -268(%rbp, %rax, 1) incq %rax decq %rcx jnz testfunc_loop_start movq $50, %rax movb -268(%rbp, %rax, 1), %al movq %rbp, %rsp popq %rbp ret