+ Var SDCC.StrStack0
+ Var SDCC.StrStack1
+ Var SDCC.StrStack2
+ Var SDCC.StrStack3
+ Var SDCC.StrStack4
+
+!define SDCC.PushStr "!insertmacro MACRO_SDCC_PushStr"
+!macro MACRO_SDCC_PushStr NAME
+ StrCpy $SDCC.StrStack4 $SDCC.StrStack3
+ StrCpy $SDCC.StrStack3 $SDCC.StrStack2
+ StrCpy $SDCC.StrStack2 $SDCC.StrStack1
+ StrCpy $SDCC.StrStack1 $SDCC.StrStack0
+ StrCpy $SDCC.StrStack0 $SDCC.FunctionName
+ StrCpy $SDCC.FunctionName ${NAME}
+!macroend
+
+!define SDCC.PopStr "!insertmacro MACRO_SDCC_PopStr"
+!macro MACRO_SDCC_PopStr
+ StrCpy $SDCC.FunctionName $SDCC.StrStack0
+ StrCpy $SDCC.StrStack0 $SDCC.StrStack1
+ StrCpy $SDCC.StrStack1 $SDCC.StrStack2
+ StrCpy $SDCC.StrStack2 $SDCC.StrStack3
+ StrCpy $SDCC.StrStack3 $SDCC.StrStack4
+!macroend