You can use the $END_EPILOGUE macro to mark the end of an
epilogue instruction sequence that you code yourself within
a stack or register routine defined with the $ROUTINE macro.
At each point where a STACK or REGISTER routine returns to
its caller, the routine must perform a sequence of operations
to restore any saved registers and to perform stack-frame
management. This sequence is called the epilogue and is described
in detail in the OpenVMS Calling Standard.
You can use the $RETURN macro to generate a standard epilogue
instruction sequence for you. Alternatively, you can code your
own sequence. If you code your own epilogue sequence, you must
mark the beginning and end of the epilogue sequence with the
$BEGIN_EPILOGUE and $END_EPILOGUE macros, respectively.
Note that you must not use $END_EPILOGUE for an epilogue
instruction sequence generated by $RETURN. $RETURN invokes
$BEGIN_EPILOGUE and $END_EPILOGUE for you.
You may omit the invocation of $END_EPILOGUE if your epilogue
sequence occurs at the end of the routine. The $END_ROUTINE macro
invokes $END_EPILOGUE for you if you invoke the $BEGIN_EPILOGUE
macro without a matching invocation of the $END_EPILOGUE macro.
You must invoke $END_EPILOGUE with epilogue sequences that occur
in the middle of your routine.