Inter-architecture compatability module to allow code module of one architecture to use library module of another architecture
First Claim
1. An inter-architecture compatibility apparatus comprising:
- a control flow transfer reception module that is one or more of (a) included on a die of a Y-bit architecture processor and (b) stored in a memory to receive a first call procedure operation intended for a first X-bit architecture library module, which is to be compatible with an X-bit architecture processor, from a first X-bit architecture code module that is to be running on the Y-bit architecture processor, through function inter-positioning where a wrapper library is to be searched before a first X-bit architecture library is searched, and where a first wrapper module has a same name as the first X-bit architecture library module is to be identified before the first X-bit architecture library module, the first call procedure operation to involve a first plurality of input parameters, wherein the first X-bit architecture library module is one of a C standard library module, a math library module, a glibc module, and a system library module;
an application binary interface (ABI) change module that is one or more of (a) included on the die of the Y-bit architecture processor (b) stored in the memory, and coupled with the control flow transfer reception module, the ABI change module to make ABI changes to convert the first call procedure operation that is to involve the first plurality of input parameters to a corresponding second call procedure operation that is to involve a second plurality of input parameters and that is to be compatible with a second Y-bit architecture library module, which is to be compatible with the Y-bit architecture processor, wherein Y is greater than X; and
a control flow transfer output module that is one or more of (a) included on the die of the Y-bit architecture processor and (b) stored in the memory coupled with the ABI change module, the control flow transfer output module to provide the second call procedure operation to the second Y-bit architecture library module, which is to be compatible with the Y-bit architecture processor on which the first X-bit architecture code module is to be running.
1 Assignment
0 Petitions
Accused Products
Abstract
An inter-architecture compatibility apparatus of an aspect includes a control flow transfer reception module to receive a first call procedure operation, intended for a first architecture library module, from a first architecture code module. The first call procedure operation involves a first plurality of input parameters. An application binary interface (ABI) change module is coupled with the control flow transfer reception module. The ABI change module makes ABI changes to convert the first call procedure operation involving the first plurality of input parameters to a corresponding second call procedure operation involving a second plurality of input parameters. The second call procedure operation is compatible with a second architecture library module. A control flow transfer output module is coupled with the ABI change module. The control flow transfer output module provides the second call procedure operation to the second architecture library module.
43 Citations
20 Claims
-
1. An inter-architecture compatibility apparatus comprising:
-
a control flow transfer reception module that is one or more of (a) included on a die of a Y-bit architecture processor and (b) stored in a memory to receive a first call procedure operation intended for a first X-bit architecture library module, which is to be compatible with an X-bit architecture processor, from a first X-bit architecture code module that is to be running on the Y-bit architecture processor, through function inter-positioning where a wrapper library is to be searched before a first X-bit architecture library is searched, and where a first wrapper module has a same name as the first X-bit architecture library module is to be identified before the first X-bit architecture library module, the first call procedure operation to involve a first plurality of input parameters, wherein the first X-bit architecture library module is one of a C standard library module, a math library module, a glibc module, and a system library module; an application binary interface (ABI) change module that is one or more of (a) included on the die of the Y-bit architecture processor (b) stored in the memory, and coupled with the control flow transfer reception module, the ABI change module to make ABI changes to convert the first call procedure operation that is to involve the first plurality of input parameters to a corresponding second call procedure operation that is to involve a second plurality of input parameters and that is to be compatible with a second Y-bit architecture library module, which is to be compatible with the Y-bit architecture processor, wherein Y is greater than X; and a control flow transfer output module that is one or more of (a) included on the die of the Y-bit architecture processor and (b) stored in the memory coupled with the ABI change module, the control flow transfer output module to provide the second call procedure operation to the second Y-bit architecture library module, which is to be compatible with the Y-bit architecture processor on which the first X-bit architecture code module is to be running. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An inter-architecture compatibility method that is executable by a processor comprising:
-
receiving a first call procedure operation intended for a first X-bit architecture library module, which is compatible with an X-bit architecture processor, from a first X-bit architecture code module that is to be running on a Y-bit architecture processor, by using function inter-positioning where a wrapper library is searched before a first X-bit architecture library is searched, and where a first wrapper module having a same name as the first X-bit architecture library module is identified before the first X-bit architecture library module, the first call procedure operation involving a first plurality of input parameters, wherein the first X-bit architecture library module is one of a C standard library module, a math library module, a glibc module, and a system library module; making application binary interface (ABI) changes to convert the first call procedure operation involving the first plurality of input parameters to a corresponding second call procedure operation involving a second plurality of input parameters and that is compatible with a second Y-bit architecture library module, which is compatible with the Y-bit architecture processor, wherein Y is greater than X; and providing the second call procedure operation to the second Y-bit architecture library module, which is compatible with the Y-bit architecture processor on which the first X-bit architecture code module is running. - View Dependent Claims (11, 12, 13)
-
-
14. A computer system comprising:
-
a memory to store a 32-bit code module, a 64-bit library module, and a 64-bit operating system module; a 64-bit processor coupled with the memory; and an inter-architecture compatibility module that is one or more of (a) included on a die of the 64-bit processor and (b) stored in the memory to intercept through function inter-positioning a call procedure operation from the 32-bit code module which is to be run on the 64-bit processor for a 32-bit library module, which is to be one of a C standard library module, a math library module, a glibc module, and a system library module, wherein in the function inter-positioning a wrapper library is to be searched before a 32-bit library is searched, and a first wrapper module has a same name as the 32-bit library module is to be identified before the 32-bit library module, and the inter-architecture compatibility module to provide a corresponding call procedure operation to the 64-bit library module, which is to be compatible with and is to be run on the 64-bit processor; wherein the inter-architecture compatibility module is to make application binary interface (ABI) changes to convert the call procedure operation for the 32-bit library module to the corresponding call procedure operation for the 64-bit library module; and wherein the 32-bit code module and the 64-bit library module are to be stored in different segments in the memory, and wherein a segment that is to store the 32-bit code module is to use flat addressing. - View Dependent Claims (15, 16, 17)
-
-
18. An article of manufacture comprising a non-transitory machine-readable storage medium that stores instructions that, executed by a processor of a computer system, cause the processor to perform operations including to:
-
receive through function inter-positioning a first call procedure operation intended for a first X-bit architecture library module, which is to be compatible with an X-bit architecture processor, from a first X-bit architecture code module that is to be running on a Y-bit architecture processor, wherein in the function inter-positioning a wrapper library is to be searched before a first X-bit architecture library is searched, and where a first wrapper module has a same name as the first X-bit architecture library module is to be identified before the first X-bit architecture library module, the first call procedure operation involving a first plurality of input parameters, wherein the first X-bit architecture library module is one of a C standard library module, a math library module, a glibc module, and a system library module; make application binary interface (ABI) changes to convert the first call procedure operation involving the first plurality of input parameters to a corresponding second call procedure operation involving a second plurality of input parameters; and provide the second call procedure operation to a second Y-bit architecture library module, which is to be compatible with the Y-bit architecture processor on which the first X-bit architecture code module is to be running, wherein Y is greater than X. - View Dependent Claims (19, 20)
-
Specification