Executing instructions to store context information based on routine to be executed
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-009/54
G06F-009/448
출원번호
US-0378231
(2016-12-14)
등록번호
US-10235190
(2019-03-19)
발명자
/ 주소
Gschwind, Michael K.
출원인 / 주소
INTERNATIONAL BUSINESS MACHINES CORPORATION
대리인 / 주소
Chiu, Esq., Steven
인용정보
피인용 횟수 :
0인용 특허 :
20
초록▼
Optimizations are provided for sibling calls. A sibling caller is marked to indicate that it may call a sibling routine or that it may call an external sibling routine. Based on the marking, certain processing is performed to facilitate use of sibling calls, particularly when the sibling routine bei
Optimizations are provided for sibling calls. A sibling caller is marked to indicate that it may call a sibling routine or that it may call an external sibling routine. Based on the marking, certain processing is performed to facilitate use of sibling calls, particularly when the sibling routine being called is external to the caller.
대표청구항▼
1. A computer program product for facilitating processing in transferring control between modules in a computing environment, the computer program product comprising: a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit
1. A computer program product for facilitating processing in transferring control between modules in a computing environment, the computer program product comprising: a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising: obtaining a stub to be executed to transfer control from a first module to a second module, wherein the stub obtained is a first stub or a second stub depending on whether a sibcaller routine is local to a caller routine, wherein: the stub is the first stub based on the sibcaller routine being local to the caller routine in that the sibcaller routine of the first module is called by the caller routine of the first module, and based on the sibcaller routine calling a sibling routine of the second module, wherein the sibcaller routine is marked by a compiler based on determining the sibcaller routine may potentially call the sibling routine, and wherein the first stub includes code to store a context information; andthe stub is the second stub based on the sibcaller routine being external to the caller routine in that the sibcaller routine of the first module is called by the caller routine of a third module, and based on the sibcaller routine calling the sibling routine in the second module, wherein the second stub is absent code to store the context information; andexecuting the stub to transfer control from the first module to the second module. 2. The computer program product of claim 1, wherein the context information includes information to restore a global offset table. 3. The computer program product of claim 1, wherein the code to store the context information comprises a store instruction used to store the context information. 4. The computer program product of claim 1, wherein the code is a store instruction. 5. The computer program product of claim 1, wherein the method further comprises: executing the sibling routine, based on executing the stub; and returning from the sibling routine to the caller routine, bases on executing the sibling routine. 6. The computer program product of claim 5, wherein the stub comprises the first stub, and wherein the returning uses the context information stored using the first stub. 7. The computer program product of claim 5, wherein the stub comprises the second stub, and wherein the returning uses context information generated based on the caller routine calling the sibcaller routine. 8. A computer system for facilitating processing in transferring control between modules in a computing environment, the computer system comprising: a memory; anda processor in communication with the memory, wherein the computer system is configured to perform a method, said method comprising: obtaining a stub to be executed to transfer control from a first module to a second module, wherein the stub obtained is a first stub or a second stub depending on whether a sibcaller routine is local to a caller routine, wherein: the stub is the first stub based on the sibcaller routine being local to the caller routine in that the sibcaller routine of the first module is called by the caller routine of the first module, and based on the sibcaller routine calling a sibling routine of the second module, wherein the sibcaller routine is marked by a compiler based on determining the sibcaller routine may potentially call the sibling routine, and wherein the first stub includes code to store a context information; andthe stub is a-the second stub based on the sibcaller routine being external to the caller routine in that the sibcaller routine of the first module is called by the caller routine of a third module, and based on the sibcaller routine calling the sibling routine in the second module, wherein the second stub is absent code to store the context information; andexecuting the stub to transfer control from the first module to the second module. 9. The computer system of claim 8, wherein the method further comprises: executing the sibling routine, based on executing the stub; and returning from the sibling routine to the caller routine, based on executing the sibling routine. 10. The computer system of claim 9, wherein the stub comprises the first stub, and wherein the returning uses the context information stored using the first stub. 11. The computer system of claim 9, wherein the stub comprises the second stub, and wherein the returning uses context information generated based on the caller routine calling the sibcaller routine. 12. A computer-implemented method of facilitating processing in transferring control between modules in a computing environment, the computer-implemented method comprising: obtaining a stub to be executed to transfer control from a first module to a second module, wherein the stub obtained is a first stub or a second stub depending on whether a sibcaller routine is local to a caller routine, wherein: the stub is the first stub based on the sibcaller routine being local to the caller routine in that the sibcaller routine of the first module is called by the caller routine of the first module, and based on the sibcaller routine calling a sibling routine of the second module, wherein the sibcaller routine is marked by a compiler based on determining the sibcaller routine may potentially call the sibling routine, and wherein the first stub includes code to store a context information; andthe stub is the second stub based on the sibcaller routine being external to the caller routine in that the sibcaller routine of the first module is called by the caller routine of a third module, and based on the sibcaller routine calling the sibling routine in the second module, wherein the second stub is absent code to store the context information; andexecuting the stub to transfer control from the first module to the second module. 13. The computer-implemented method of claim 12, further comprising: executing the sibling routine, based on executing the stub; and returning from the sibling routine to the caller routine, based on executing the sibling routine. 14. The computer-implemented method of claim 12, wherein the stub comprises the first stub, and wherein the returning uses the context information stored using the first stub. 15. The computer-implemented method of claim 12, wherein the stub comprises the first stub, and wherein the returning uses context information generated based on the caller routine calling the sibcaller routine.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (20)
Hunt, Galen C.; Tabbara, Bassam; Grealish, Kevin; Outhred, Geoffrey; Mensching, Rob, Architecture for distributed computing system and automated design, deployment, and management of distributed applications.
Odnert Daryl (Boulder Creek CA) Santhanam Vatsa (Sunnyvale CA), Method and apparatus for compiling computer programs with interprocedural register allocation.
Odnert Daryl (Boulder Creek CA) Santhanam Vatsa (Sunnyvale CA), Method and apparatus for compiling computer programs with interproceduural register allocation.
Outhred, Geoffrey; Han, Eric K; Grealish, Kevin D. J.; Brown, Mathilde C.; Gustin, Reid B; Mensching, Rob; Nielsen, Steven T, Model and system state synchronization.
Frances Cohen ; Marc Abraham Bombet ; Robert Dennis Lusinsky ; Timothy Andrew Lewis ; Marc Shane Sandusky, Software development system that presents a logical view of project components, facilitates their selection, and signals missing links prior to compilation.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.