# US 10,481,902 B2 · Initialization status of a register employed as a pointer

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,481,902 B2
- Document ID: US10481902B2
- Status: Granted
- Kind: B2
- Application number: 15/836,280
- Filed: 2017-12-08
- Published: 2018-04-12
- Granted: 2019-11-19
- Earliest claimed: 2015-06-30
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Michael K. Gschwind
- Web page: https://patentgrep.com/patent/US10481902B2

## CPC

- G06F 8/70: Software maintenance or management
- G06F 8/54: Link editing before load time
- G06F 9/44521: {Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Initialization status of a register to be used as a pointer to a reference data structure is used to determine how a stub is to be generated to access the reference data structure. The register is one type of pointer configuration to be used to access the reference data structure, which is used to resolve a symbol associated with a function of a program. An indication is obtained as to whether the register has been initialized with a reference data structure pointer. Based on obtaining the indication, a stub is generated that is to be used to access the function. The generating depends on whether the register has been initialized. If the register has not been initialized, then the stub is generated to include another type of pointer configuration to be used to access the reference data structure.

## Claims

### Claim 1

A computer program product for facilitating processing within a computing environment, the computer program product comprising:
a non-transitory computer readable storage medium readable by a processing circuit and storing instructions for performing a method comprising:
obtaining, by a processor, initialization status of a register, the initialization status indicating whether the register has been initialized with a reference data structure pointer, the register being one type of pointer configuration to be used to access a reference data structure to be used to resolve a symbol associated with a function of a program, and wherein the initialization status is to be used in generating a stub to be used to access the function; and
based on obtaining the initialization status of the register, generating the stub to be used to access the function, the generating depending on whether the initialization status indicates the register has been initialized, wherein:
based on the initialization status indicating the register has been initialized with the reference data structure pointer, the generating the stub comprises generating the stub using the register; and
based on the initialization status indicating the register has not been initialized with the reference data structure pointer, the generating the stub comprises generating the stub to include another type of pointer configuration to be used to access the reference data structure, the other type of pointer configuration being different from the one type of pointer configuration in that the stub is generated without referencing the register in the stub.

### Claim 2 (depends on 1)

The computer program product of claim 1, wherein the other type of pointer configuration is a non-register pointer configuration.

### Claim 3 (depends on 1)

The computer program product of claim 1, wherein the other type of pointer configuration includes using a value, the value not being stored in the register to be used to access the reference data structure, and wherein the value comprises one of a program counter, a current address, an absolute address, or an address of a caller of the function.

### Claim 4 (depends on 1)

The computer program product of claim 1, wherein the generating the stub, based on the initialization status indicating the register has not been initialized with the reference data structure pointer, comprises generating the stub absent a store instruction to store the reference data structure pointer.

### Claim 5 (depends on 1)

The computer program product of claim 1, wherein based on the initialization status indicating the register has not been initialized, a restoration of the register is avoided.

### Claim 6 (depends on 1)

The computer program product of claim 1, wherein the initialization status indicating whether the register has been initialized is provided by a relocation command associated with the symbol to be resolved.

### Claim 7 (depends on 6)

The computer program product of claim 6, wherein one value of the relocation command indicates the register is initialized, and another value of the relocation command indicates the register is uninitialized.

### Claim 8

A computer system for facilitating processing within a computing environment, said computer system comprising:
a memory; and
a processor in communications with the memory, wherein the computer system is configured to perform a method, the method comprising:
obtaining, by the processor, initialization status of a register, the initialization status indicating whether the register has been initialized with a reference data structure pointer, the register being one type of pointer configuration to be used to access a reference data structure to be used to resolve a symbol associated with a function of a program, and wherein the initialization status is to be used in generating a stub to be used to access the function, and
based on obtaining the initialization status of the register, generating the stub to be used to access the function, the generating depending on whether the initialization status indicates the register has been initialized, wherein:
based on the initialization status indicating the register has been initialized with the reference data structure pointer, the generating the stub comprises generating the stub using the register; and
based on the initialization status indicating the register has not been initialized with the reference data structure pointer, the generating the stub comprises generating the stub to include another type of pointer configuration to be used to access the reference data structure, the other type of pointer configuration being different from the one type of pointer configuration in that the stub is generated without referencing the register in the stub.

### Claim 9 (depends on 8)

The computer system of claim 8, wherein the other type of pointer configuration is a non-register pointer configuration.

### Claim 10 (depends on 8)

The computer system of claim 8, wherein the other type of pointer configuration includes using a value, the value not being stored in the register to be used to access the reference data structure, and wherein the value comprises one of a program counter, a current address, an absolute address, or an address of a caller of the function.

### Claim 11 (depends on 8)

The computer system of claim 8, wherein the initialization status indicating whether the register has been initialized is provided by a relocation command associated with the symbol to be resolved.

### Claim 12 (depends on 8)

The computer system of claim 8, wherein the generating the stub, based on the initialization status indicating the register has not been initialized with the reference data structure pointer, comprises generating the stub absent a store instruction to store the reference data structure pointer.

### Claim 13 (depends on 8)

The computer system of claim 8, wherein based on the initialization status indicating the register has not been initialized, a restoration of the register is avoided.

### Claim 14 (depends on 11)

The computer system of claim 11, wherein one value of the relocation command indicates the register is initialized, and another value of the relocation command indicates the register is uninitialized.

### Claim 15

A computer-implemented method of facilitating processing within a computing environment, said computer-implemented method comprising:
obtaining, by a processor, initialization status of a register, the initialization status indicating whether the register has been initialized with a reference data structure pointer, the register being one type of pointer configuration to be used to access a reference data structure to be used to resolve a symbol associated with a function of a program, and wherein the initialization status is to be used in generating a stub to be used to access the function, and
based on obtaining the initialization status of the register, generating the stub to be used to access the function, the generating depending on whether the initialization status indicates the register has been initialized, wherein:
based on the initialization status indicating the register has been initialized with the reference data structure pointer, the generating the stub comprises generating the stub using the register; and
based on the initialization status indicating the register has not been initialized with the reference data structure pointer, the generating the stub comprises generating the stub to include another type of pointer configuration to be used to access the reference data structure, the other type of pointer configuration being different from the one type of pointer configuration in that the stub is generated without referencing the register in the stub.

### Claim 16 (depends on 15)

The computer-implemented method of claim 15, wherein the other type of pointer configuration is a non-register pointer configuration.

### Claim 17 (depends on 15)

The computer-implemented method of claim 15, wherein the other type of pointer configuration includes using a value, the value not being stored in the register to be used to access the reference data structure, and wherein the value comprises one of a program counter, a current address, an absolute address, or an address of a caller of the function.

### Claim 18 (depends on 15)

The computer-implemented method of claim 15, wherein the generating the stub, based on the initialization status indicating the register has not been initialized with the reference data structure pointer, comprises generating the stub absent a store instruction to store the reference data structure pointer.

### Claim 19 (depends on 15)

The computer-implemented method of claim 15, wherein the initialization status indicating whether the register has been initialized is provided by a relocation command associated with the symbol to be resolved.

### Claim 20 (depends on 15)

The computer-implemented method of claim 15, wherein based on the initialization status indicating the register has not been initialized, a restoration of the register is avoided.
