1. A computer system for code stack management, the system comprising: a processor configured to execute a software application; and a memory comprising a code stack memory area and a data stack memory area, the code stack memory area being separate from the data stack memory area; the system configured to perform a method comprising: maintaining a data stack in the data stack memory area, the data stack comprising a plurality of stack frames comprising one or more data variables corresponding to the execution of the software application; maintaining a code stack in the code stack memory area, the code stack comprising a plurality of code stack entries comprising executable computer code corresponding to the execution of the software application; entering a function of the software application; storing a current value of a code stack pointer (CSP) of the code stack in a memory location for the function on the data stack based on entering the function; allocating one or more entries on the code stack corresponding to a trampoline used in conjunction with a pointer to one or more nested functions of the function, wherein a most recently allocated code stack entry is referenced by the CSP; and before exiting the function, restoring the CSP by loading the stored CSP value from the memory location.