发明名称 |
Code stack management |
摘要 |
Embodiments relate to code stack management. An aspect includes a processor configured to execute a software application. Another aspect includes a code stack memory area and a data stack memory area, the code stack memory area being separate from the data stack memory area. Another aspect includes 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. Another aspect includes 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. |
申请公布号 |
US9430236(B2) |
申请公布日期 |
2016.08.30 |
申请号 |
US201414501548 |
申请日期 |
2014.09.30 |
申请人 |
INTERNATIONAL BUSINESS MACHINES CORPORATION |
发明人 |
Gschwind Michael K. |
分类号 |
G06F9/44;G06F9/30 |
主分类号 |
G06F9/44 |
代理机构 |
Cantor Colburn LLP |
代理人 |
Cantor Colburn LLP ;Kinnaman, Jr. William A. |
主权项 |
1. A computer program product for implementing code stack management, the computer program product comprising:
a non-transitory tangible storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising: executing a software application by a processor of a computer; maintaining a data stack in a data stack memory area of a memory of the computer, 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 a code stack memory area of the memory of the computer, the code stack comprising a plurality of code stack entries comprising executable computer code corresponding to the execution of the software application, the code stack memory area being separate from the data stack memory area; 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. |
地址 |
Armonk NY US |