CN102222017B - Methods and systems to implement non-ABI conforming features across unseen interfaces - Google Patents
Methods and systems to implement non-ABI conforming features across unseen interfaces Download PDFInfo
- Publication number
- CN102222017B CN102222017B CN201110126383.3A CN201110126383A CN102222017B CN 102222017 B CN102222017 B CN 102222017B CN 201110126383 A CN201110126383 A CN 201110126383A CN 102222017 B CN102222017 B CN 102222017B
- Authority
- CN
- China
- Prior art keywords
- routine
- interface
- name
- entrance
- alternative
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
- Communication Control (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
The invention discloses methods and systems to implement non-ABI conforming features across unseen interfaces and compile a code module to permit a caller routine to pass a parameter to a callee routine of a separately compiled code module, and to permit a callee routine to receive a parameter from a caller routine of the separately compiled code module, through multiple interfaces. Interfaces may include an interface by convention and an alternate interface. A caller routine may be configured to pass a parameter through an alternate interface and call to an alternate entry point of a callee routine. An associated stub routine may be configured to pass the parameter through an interface by convention and to call to a conventional entry point of the callee routine. If the callee routine includes a corresponding alternate entry point, the caller routine may be linked to the alternate entry point. Otherwise, the callee routine may be linked to the callee routine through the stub routine.
Description
Background technology
In computer program, the calling routine of the first collector can transmit by interface the group of one or more parameter to the called routine of the second collector of independent compiling, and collector can be linked to carry out in computer system subsequently.
Interface can meet generally acknowledges standard or standard, such as application binaries interface (ABI).ABI can describe the physical layer interface between computer program, and can process and call standard details, for example data type, size, alignment, with the transmission of control function variable or parameter with return.At WindowsIA-32 and Linux, call under standard, for example, function parameter is passed on allocating stack.
Bottom software author or compiler can build the interface of not following standard, or revise existing interface so that interface is no longer followed standard.In 32-bit Windows or Linux environment, for example, interface can be modified to the storer load/store operations to avoid being associated with allocating stack by register transfer parameter.
Traditionally, when modifier (programmable device or compiler) can be accessed all calling routines of called routine and called routine, interface can be constructed or be revised as contrary with standard.When not every calling routine is all available, the interface of available calling routine can be modified, suppose called routine be configured to adapt to the interface revised and Standard Interface the two, it can be used by other calling routines.In other words, called routine and at least one calling routine are modified.
Summary of the invention
According to an aspect of the present invention, a kind of method for compiled code module is provided, comprise: compiling first code module is to generate the first collector, comprise: identifying call does not have the calling routine of the name of appearance in described first code module, according to described name, generate alternative name, generate the weak version of described alternative name, compile described calling routine to transmit the group of one or more parameter by first interface, and call described alternative name, and compile described first code module to comprise counterfoil routine, described counterfoil routine has the entrance with the described weak version identifier of described alternative name, and be configured to by the second interface transmission from the described parameter group of described first interface and call described name, wherein, in the computer system of suitably programming, carry out described compiling.
According to another aspect of the present invention, a kind of device for compiled code module is provided, comprise: for compiling first code module to generate the unit of the first collector, comprise: the unit that there is no the calling routine of the name that occurs for identifying call in described first code module, for generate the unit of alternative name according to described name, for generating the unit of the weak version of described alternative name, for compiling described calling routine to transmit the group of one or more parameter by first interface and to call the unit of described alternative name, and for compiling described first code module to comprise the unit of counterfoil routine, described counterfoil routine has the entrance with the described weak version identifier of described alternative name, and be configured to by the second interface transmission from the described parameter group of described first interface and call described name, wherein, in the computer system of suitably programming, carry out described compiling.
Accompanying drawing explanation
Fig. 1 is that the figure that comprises the computing environment of the first and second code modules and corresponding the first and second collectors is described.
Fig. 2 is that the figure that comprises the collector of calling routine and counterfoil routine is described.
Fig. 3 is that the figure that comprises the collector of called routine is described.
Fig. 4 is the process flow diagram of the method for compiling one code module, and this code module can comprise calling routine and/or called routine.
Fig. 5 is the method flow diagram of compiling one code module called routine Transfer Parameters group from calling routine to another collector with an interface by a plurality of interfaces.
Fig. 6 is that compiling one code module is to provide a plurality of entrances to receive the process flow diagram of the method for parameter group by an interface in a plurality of corresponding interfaces to called routine.
Fig. 7 is linked to the calling routine of the first collector the process flow diagram of method of the called routine of the second collector.
Fig. 8 is that the figure that comprises the computer system of the collector in Fig. 2 and Fig. 3 is described, and wherein calling routine calls the alternative entrance that is linked to called routine.
Fig. 9 is that the figure that comprises another computer program of the collector of Fig. 2 and the collector of Fig. 1 is described, and wherein calling of calling routine is linked to counterfoil routine, and counterfoil routine call the entrance that is linked to called routine.
Figure 10 comprises that calling routine is in order to describe from the figure of the collector of a plurality of parameters of a plurality of corresponding positions by individual interface transmission.
Figure 11 comprises that calling routine comes the figure of another collector of selectivity Transfer Parameters group to describe in order to an interface by a plurality of interfaces.
Figure 12 is the block diagram that is configured to compile a code module and links the computer system of a collector.
In accompanying drawing, Far Left designated wherein there is for the first time the figure of this Reference numeral.
Embodiment
Herein disclosed is method and system, its configuration has the calling routine of a plurality of interfaces parameter group is delivered to the called routine of independent compiling, and the configuration based on called routine links a compiling calling routine and the called routine of a compiling by one or more interface in a plurality of interfaces.A plurality of interfaces can comprise Standard Interface (interface by convention) and alternative interface (alternate interface).Also disclose method and system herein, the called routine that its configuration has a plurality of entrances receives parameter group with an interface by a plurality of corresponding interfaces from another collector.
Fig. 1 is that the figure that comprises respectively the computing environment 100 of the first and second code modules 102 and 104 is described.Code module 102 and 104 can comprise source class code and/or intergrade code.
Code module 102 comprises calling routine 106, and this calling routine 106 has the called routine 110 of code module 104 called to 108.
Calling 108 can comprise name 112 and will be delivered to indication or the sign of group 114 of one or more parameter (for example, PARM1 and PARM2) of called routine 110 in when operation.
Called routine 110 can comprise function code 111, in order to carry out one or more function relevant to parameter group.
Collector 118 comprises the calling routine corresponding with calling routine 106 122.Calling routine 122 comprises with calling of calling routine 106 and 108 corresponding calls 126.
Collector 120 comprises the called routine 124 corresponding with called routine 110, and this called routine 124 has the entrance 125 by name 112 signs.Called routine 124 also comprises the corresponding function code of function code 111 128.
When code module 102 and 104 is compiled independent of one another, calling routine 122 and called routine 124 can be configured to according to standard and/or standard and Transfer Parameters group 114, and this can include but not limited in allocating stack parameters transmission.
In the example of Fig. 1, calling routine 122 comprises interface code 130, and in order to by allocating stack Transfer Parameters group 114, and called routine 124 comprises interface code 132, in order to receive parameter group 114 by allocating stack after entering an entrance 125.Allocating stack and any format requirement can be called as interface.
Compiler 116 comprises Standard Interface constructor 142, in order to construct interface code 130 according to standard, and standard entrance constructor 144, in order to be constructed into stomion 125 and corresponding interface code 132 according to standard.
Alternately, when collector 118 or collector 120 are generated by another compiler, corresponding interface code can be generated by other compiler.
In some cases, can wish by not meeting the alternative interface Transfer Parameters of standard.For example, in Fig. 1, the interface code 132 of called routine 124 is configured to parameter group 114 to be loaded into respectively register R1 and R2 from allocating stack.Function code 128 can be configured to the parameter in access register R1 and R2.In this case, can wish to configure calling routine 122 and called routine 124 to pass through register R1 and R2 Transfer Parameters group 114.
Compiler 116 can comprise alternative entrance constructor 145, in order to construct the alternative entrance in called routine, for example described below with reference to Fig. 3.
Compiler 116 can also comprise alternative interface constructor 146, in order to construct alternative interface and corresponding the alternative of alternative entrance called in called routine, for example described below with reference to Fig. 2.
Compiler 116 can be configured to construct a Standard Interface and an alternative interface for calling routine, and it can allow calling routine to call a called routine of suitably revising or without the called routine of revising.
Similarly, compiler 116 can be configured to for called routine structure standard entrance, corresponding Standard Interface and alternative entrance, and it can allow to call a called routine by the calling routine of suitably revising with without the calling routine of revising.
Link system 136 can be configured to, for example described below with reference to Fig. 8, when calling routine and called routine are all properly configured, by alternative interface, calling routine selectivity is linked to called routine, otherwise for example described below with reference to Fig. 9, by Standard Interface, calling routine selectivity is linked to called routine.
In example, alternative interface, alternative calling with alternative entrance are all described to be constructed by compiler 116 in the above.Alternately, alternative interface and corresponding alternative call or alternative entrance can be constructed after compiling, for example, input with machine code editing machine and carry out in response to user.
Fig. 2 is that the figure that comprises the collector 200 of calling routine 202 and counterfoil routine (stub routine) 204 is described.
Collector 200 can generate by the code module from Fig. 1 102 by compiler 116.Alternately, in the situation that the collector 118 in Fig. 1 is generated by another compiler, the collector 200 in Fig. 2 can or be revised from collector 118 structures, for example, in response to user's input, by machine code editing machine, undertaken.
Calling routine 202 comprise to name 208 call 206, be illustrated as Bar_bair_2 here.Calling routine 202 also comprises corresponding interface code 210, in order to pass through first interface Transfer Parameters group 114(for example PARM1 and PARM2), described first interface is illustrated as register R1 and R2 here.First interface can, corresponding to alternative interface, can be called as alternative calling and call 206.
Name 208 can generate according to the name 112 of the calling routine 106 in Fig. 1.Name 208 can also generate according to the number of parameter in the name of first interface and parameter group 114.For example, " bair " can represent " the blind variable in register (blind arguments in registers) ", and " 2 " can represent the number of the parameter in parameter group 114.Name 208 can be called as alternative name.
Counterfoil routine 204 comprise to name 112 call 126, and corresponding interface code 218, in order to for example, to transmit for example, parameter group 114 from first interface (R1 and R2) by the second interface (allocating stack).Interface code 218 can be corresponding to Standard Interface.
Counterfoil routine 204 can be associated to allow link system 136 that calling routine 202 is linked to counterfoil routine 204 with calling routine 202.For example, the entrance 212 of counterfoil routine 204 can be named as " weak " version of alternative name 208, is illustrated as weak.Bar_bair_2 here.
Fig. 3 is that the figure that comprises the collector 300 of called routine 302 is described.
Collector 300 can be generated from the code module 104 of Fig. 1 by compiler 116.Alternately, in the situation that the collector 120 in Fig. 1 is generated by another compiler, collector 300 can or be revised from collector 120 structures, for example, in response to user's input, by machine code editing machine, undertaken.
Called routine 302 includes stomion 125, and corresponding interface code 132 receives parameter group 114 by allocating stack, for example described above with reference to the called routine 124 in Fig. 1.Entrance 125 can be corresponding to standard entrance, and interface code 132 can be corresponding to Standard Interface.
Called routine 302 can comprise alternative entrance 304, is illustrated as here between interface code 132 and function code 128.
In this case, alternative entrance 304 does not need corresponding interface code.In other cases, entrance 304 can comprise interface code, in order to reorientation and/or format parameter group 114.
Below with reference to Fig. 4-7 and with reference to one or more other example herein and open exemplary method.Yet the example of Fig. 4-7 is not limited to these other examples.
Fig. 4 is the process flow diagram of the method 400 of compiling one code module, and this code module can comprise calling routine and/or called routine.
402, receive code module.In Fig. 1, compiler 116 can receive code module 102 and/or code module 104.
404, the calling routine in assessment code module, for example calling routine in Fig. 1 106.In the situation that calling routine calls the name not appearing in code module, process and proceed to 406,406, according to Fig. 5 described below, compile calling routine.Can repeat for one or more other calling routine in 404 assessment with in 406 compiling.
408, the called routine in assessment code module.Can be from this called routine of code module external call in the situation that, process and proceed to 410,410, according to Fig. 6 described below, compile called routine.Can repeat for one or more other called routine in 408 assessment with in 410 compiling.
412, other codes of code module for example can be compiled according to traditional technique of compiling.
Above with reference to the disclosed feature of Fig. 4 and/or its part, can carry out by the one or more of sequences in various sequences respect to one another, carry out parallelly, and/or carry out with comprehensive method.
Fig. 5 is the process flow diagram of compiling one code module method 500 of the called routine Transfer Parameters group from calling routine to another collector with an interface by a plurality of interfaces.
502, calling routine is identified as having calling of name to not occurring in code module in code module.
504, generate alternative some name.Alternative some name can generate according to the number of the parameter of calling the indication of name, first interface and transmitting by first interface.
506, generate the weak version of alternative name, for example described above with reference to the entrance 212 in Fig. 2.
508, calling routine is compiled to call alternative name and passes through first interface Transfer Parameters group, for example described above with reference to the calling routine 202 in Fig. 2.
510, first code module is compiled to comprise counterfoil routine, in order to call described name and the parameter group from first interface by the second interface transmission.The entrance of counterfoil routine or counterfoil routine is identified with the weak version of alternative name, for example described above with reference to the counterfoil routine 204 in Fig. 2.
Fig. 6 is that compiling one code module is to provide a plurality of entrances to receive the process flow diagram of the method 600 of parameter group by an interface in a plurality of corresponding interfaces to called routine.
602, called routine is identified as in code module can be outside called from code module.
604, generate alternative entrance name.Alternative entrance name can be according to the called name of routine, the number of the indication of alternative interface and the parameter transmitted by alternative interface generate.
606, called routine is compiled as and comprises the first entrance, for receiving parameter group by Standard Interface, and alternative entrance, for receiving parameter group by alternative interface.Can be with name identification first entrance of called routine, and can be with the alternative entrance of name identification, alternative entrance, for example described above with reference to the called routine 302 in Fig. 3.
Fig. 7 is linked to the calling routine of the first collector the process flow diagram of method 700 of the called routine of the second collector.
702, for example, at link system 136 places of Fig. 1, receive the first and second collectors.The first collector can be corresponding to the collector 200 in Fig. 2.The second collector can be corresponding to the collector 120 of Fig. 1 or the collector 300 of Fig. 3.
704, identification is according to the calling routine of the first collector of method 600 configurations and the counterfoil routine being associated.Calling routine and the counterfoil routine being associated can be corresponding to the calling routine 202 in Fig. 2 and counterfoil routines 200.
706, the called routine of identification the second collector, this called routine has first entrance corresponding with calling of counterfoil routine.Called routine can be corresponding to the called routine 124 in Fig. 1 or the called routine 302 in Fig. 3.
708, the called routine of assessment.In the situation that called routine comprises that as above face, with reference to 606 described alternative entrances in Fig. 6, is processed and proceeded to 710.In the situation that called routine does not comprise this alternative entrance, process and proceed to 712.
710, calling routine is linked to the alternative entrance of called routine.Fig. 8 is that the figure of computer program 800 is described, and computer program 800 comprises the collector 200 of Fig. 2 and the collector 300 of Fig. 3, wherein calls the alternative entrance 304 that 206 use links 802 are linked to called routine 302.
712, calling routine is linked to counterfoil routine, and counterfoil routine is linked to the first entrance of called routine.Fig. 9 is that the figure of computer program 900 is described, comprise the collector 200 of Fig. 2 and the collector 120 of Fig. 1, wherein call 206 use links 902 and be linked to counterfoil routine 204, and counterfoil routine 204 call the entrance 125 that 126 use links 904 are linked to the routine 124 that is called.
In the above example, two parameters (PARM1 and PARM2) are by register R1 and R2 or transmit by allocating stack.Yet method and system disclosed herein is not limited to register or allocating stack.
Alternative interface can be configured to execute the task and/or logical operation.The following discloses example task and logical operation.Yet alternative interface is not limited to following example.
Alternative interface can be constructed to combination from a plurality of parameters of a plurality of positions, and transmits combination parameter by single position, for example, as described below with reference to Figure 10.
Alternative interface can be constructed to by an interface Transfer Parameters group in a plurality of selectable interfaces, for example, as described below with reference to Figure 11.
Alternative interface can be constructed to be transmitted the first parameter group and transmitted the second parameter group by the second interface by first interface.
Figure 10 is that the figure of collector 1000 is described, and comprises calling routine 1002 and counterfoil routine 1004.Calling routine 1002 can comprise and alternatively calls 1006 and corresponding alternative interface code 1008, in order to transmit a plurality of parameters from a plurality of positions by single alternative interface (being illustrated as register R1 here).Alternative interface code 1006 can be configured to combination or manipulation parameter before being loaded into register.Counterfoil routine 1004 can be configured to transmit a plurality of parameters by standard, and for example one or more example is described above.
Figure 11 is that the figure of collector 1100 is described, and comprises calling routine 1102 and counterfoil routine 1104.Calling routine 1102 comprises and a plurality ofly alternatively calls 1106 and 1108, corresponding a plurality of alternative entrances of directed called routine.Alternatively call 1106 and comprise alternative interface code 1110, in order to by the first alternative interface (being illustrated as register R1 and R2 herein) Transfer Parameters group.Alternatively call 1108 and comprise alternative interface code 1112, in order to combination parameter group and by the second alternative interface (being illustrated as register R1 herein), transmit combination parameter group.
Calling routine 1102 also comprises that state determines logic (contingency logic) 1114 and 1116, in order to come selectivity to call based on state (contingency) " A ", alternatively calls 1106 or alternatively call 1108.State can relate to value and/or one or more condition of one or more parameter.
Counterfoil routine 1104 can be configured to when called routine does not comprise alternative entrance according to standard Transfer Parameters group.
One or more feature disclosed herein can use hardware, software, firmware with and in conjunction with realizing, comprise discrete or integrated circuit (IC) logic, special IC (ASIC) logic and microcontroller, and may be implemented as the part of specific area integrated antenna package or the combination of integrated antenna package.As used herein term software, code and instruction refer to computer program, it comprises the computer-readable medium that wherein stores computer program logic, so that computer system is carried out the combination of one or more feature disclosed herein and/or feature.
Figure 12 is the block diagram of exemplary computer system 1200, comprises that one or more computer instruction processing unit (processor 1202 as described here) is with computer program Product Logic.
Computer system 1200 comprises one or more storer, high-speed cache, register and memory device (hereinafter referred to as " storer ") 1204.
Storer 1204 comprises computer-readable medium, stores computer program logical one 206 so that processor 1202 is carried out one or more function in response to it on it.
Storer 1204 also comprise the data 1208 used by processor 1202 in actuating logic 1206 and/or by processor 1202 in response to the data 1208 that the execution of logical one 206 is generated.
Data 1208 can comprise code module 102 and/or the code module 104 in Fig. 1.
Compiler logic 1210 can comprise Standard Interface logical one 212 so that processor 1202 generates interface codes to allow calling routine according to standard Transfer Parameters group, for example, above described in one or more example.
Compiler logic 1210 can comprise alternative interface logic 1214 so that processor 1202 generates alternative interface code to allow calling routine by alternative interface Transfer Parameters group, for example, above described in one or more example.
Compiler logic 1210 can comprise standard entrance logical one 216 and allow called routine to receive parameter group by standard so that processor 1202 is constructed into stomion and corresponding interface code, for example, above described in one or more example.
Logic compiler 1210 can comprise alternative entrance logical one 218 so that the alternative entrance of processor 1202 structure is to allow called routine by alternative interface reception parameter group, for example, above described in one or more example.
Logical one 206 can comprise link logical one 220 so that a plurality of collectors of processor 1202 link, this comprises that selectivity Linked Invoke routine is to the alternative entrance of called routine, or by counterfoil routine Linked Invoke routine for example, to called routine, above described in one or more example.
Computer system 1200 can comprise the communications infrastructure 1240, in order to communicate in computer system 1200, and i/o controller 1242, in order to the network communicating system by such as the Internet, connect one or more other computer systems.
By means of formation function piece, method and system is disclosed herein, so that its function, feature and relation to be described.For convenience of description, one or more this divisions can be defined arbitrarily herein.Alternative division can be defined.
Although herein disclosed is various embodiment, should be appreciated that as example and unrestricted these embodiment that presented.In the situation that do not depart from the spirit and scope of system and method disclosed herein, can carry out therein the various changes in form and details, this will be apparent to various equivalent modifications.So width and the scope of claim are not limited by any example disclosed herein.
Claims (14)
1. for a method for compiled code module, comprising:
Compiling first code module, to generate the first collector, comprising:
Identifying call does not have the calling routine of the name of appearance in described first code module,
According to described name, generate alternative name,
Generate the weak version of described alternative name,
Compile described calling routine to transmit the group of one or more parameter by first interface, and call described alternative name, and
Compile described first code module to comprise counterfoil routine, described counterfoil routine has the entrance with the described weak version identifier of described alternative name, and is configured to by the second interface transmission from the described parameter group of described first interface and calls described name; And
Described the first collector and the second collector are linked, and described the second collector comprises the called routine having with the first entrance of described name identification, comprising:
When described called routine comprises alternative entrance, described calling routine is linked to the described alternative entrance of the described called routine with described alternative name, and
When described called routine does not comprise described alternative entrance, described calling routine is linked to the described entrance of described counterfoil routine and described counterfoil routine is linked to described first entrance of described called routine;
Wherein, in the computer system of suitably programming, carry out described compiling.
2. the method for claim 1, wherein said compiling also comprises:
Identify the called routine in described first code module;
According to the name of identified called routine, generate alternative entrance name; And
The called routine that compiling is identified is to comprise the first entrance, described the first entrance has the described name of described called routine and is configured to and receives described parameter group by described the second interface, and comprise alternative entrance, described alternative entrance has described alternative entrance name and is configured to receive described parameter group by described first interface.
3. the method for claim 1, wherein said compiling also comprises that the described calling routine of compiling is to transmit described parameter group by a selected interface in a plurality of interfaces.
4. method as claimed in claim 3, wherein said compiling also comprises that the described calling routine of compiling transmits described parameter group with the value of the parameter based on described parameter group by a selected interface in described a plurality of interfaces.
5. the method for claim 1, wherein said compiling also comprise the described calling routine of compiling with combination from a plurality of parameters of a plurality of positions and by the described a plurality of parameters of described first interface transmission.
6. the method for claim 1, wherein said first interface corresponding to register and described the second interface corresponding to allocating stack.
7. the method for claim 1, wherein said compiling also comprises according to the number of the parameter in the indication of described name, described first interface and described parameter group and generates described alternative name.
8. for a device for compiled code module, comprising:
For compiling first code module to generate the unit of the first collector, comprising:
For identifying call, in described first code module, there is no the unit of calling routine of the name of appearance,
For generate the unit of alternative name according to described name,
For generating the unit of the weak version of described alternative name,
For compiling described calling routine to transmit the group of one or more parameter by first interface and to call the unit of described alternative name, and
For compiling described first code module to comprise the unit of counterfoil routine, described counterfoil routine has the entrance with the described weak version identifier of described alternative name, and is configured to by the second interface transmission from the described parameter group of described first interface and calls described name; And
For the unit that described the first collector and the second collector are linked, described the second collector comprises the called routine having with the first entrance of described name identification, comprising:
For when described called routine comprises alternative entrance, described calling routine is linked to the unit of the described alternative entrance of the described called routine with described alternative name, and
For when described called routine does not comprise described alternative entrance, described calling routine is linked to the described entrance of described counterfoil routine and described counterfoil routine is linked to the unit of described first entrance of described called routine;
Wherein, in the computer system of suitably programming, carry out described compiling.
9. device as claimed in claim 8, wherein also comprises for the unit compiling:
For identifying the unit of the called routine of described first code module;
For generate the unit of alternative entrance name according to the name of identified called routine; And
For compiling identified called routine to comprise the first entrance and to comprise the unit of alternative entrance, described the first entrance has the described name of described called routine and is configured to and receives described parameter group by described the second interface, and described alternative entrance has described alternative entrance name and is configured to receive described parameter group by described first interface.
10. device as claimed in claim 8, wherein also comprises for compiling described calling routine to transmit the unit of described parameter group by the selected interface of a plurality of interfaces for the unit compiling.
11. devices as claimed in claim 10, wherein also comprise for compiling described calling routine and by the selected interface of described a plurality of interfaces, transmit the unit of described parameter group with the value of the parameter based on described parameter group for the unit compiling.
12. devices as claimed in claim 8, wherein also comprise for compiling described calling routine to combine from a plurality of parameters of a plurality of positions and by the unit of the described a plurality of parameters of described first interface transmission for the unit compiling.
13. devices as claimed in claim 8, wherein said first interface corresponding to register and described the second interface corresponding to allocating stack.
14. devices as claimed in claim 8, wherein also comprise for the unit compiling: for generate the unit of described alternative name according to the number of the parameter of the indication of described name, described first interface and described parameter group.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/759,487 | 2010-04-13 | ||
US12/759,487 US8464230B2 (en) | 2010-04-13 | 2010-04-13 | Methods and systems to implement non-ABI conforming features across unseen interfaces |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102222017A CN102222017A (en) | 2011-10-19 |
CN102222017B true CN102222017B (en) | 2014-03-19 |
Family
ID=44284042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110126383.3A Expired - Fee Related CN102222017B (en) | 2010-04-13 | 2011-04-13 | Methods and systems to implement non-ABI conforming features across unseen interfaces |
Country Status (5)
Country | Link |
---|---|
US (1) | US8464230B2 (en) |
EP (1) | EP2378413B1 (en) |
JP (1) | JP5384551B2 (en) |
KR (1) | KR101293389B1 (en) |
CN (1) | CN102222017B (en) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8464230B2 (en) * | 2010-04-13 | 2013-06-11 | Intel Corporation | Methods and systems to implement non-ABI conforming features across unseen interfaces |
CN103853532B (en) * | 2012-11-29 | 2017-09-29 | 国际商业机器公司 | Method and apparatus for function call |
US10185547B2 (en) * | 2015-06-26 | 2019-01-22 | Intel Corporation | Techniques for distributed operation of secure controllers |
CN108304191B (en) * | 2016-09-30 | 2021-06-01 | 龙芯中科技术股份有限公司 | Function dynamic calling method and device |
US10235190B2 (en) | 2016-12-14 | 2019-03-19 | International Business Machines Corporation | Executing instructions to store context information based on routine to be executed |
US10152338B2 (en) | 2016-12-14 | 2018-12-11 | International Business Machines Corporation | Marking external sibling caller routines |
US10180827B2 (en) * | 2016-12-14 | 2019-01-15 | International Business Machines Corporation | Suppressing storing of context information |
US20180165073A1 (en) | 2016-12-14 | 2018-06-14 | International Business Machines Corporation | Context information based on type of routine being called |
US10241769B2 (en) | 2016-12-14 | 2019-03-26 | International Business Machines Corporation | Marking sibling caller routines |
US10095493B2 (en) * | 2016-12-14 | 2018-10-09 | International Business Machines Corporation | Call sequence generation based on type of routine |
DE112019006805A5 (en) * | 2019-01-31 | 2021-11-04 | Bayerische Motoren Werke Aktiengesellschaft | Method for executing program components on a control device, a computer-readable storage medium, a control device and a system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199200B1 (en) * | 1994-04-15 | 2001-03-06 | International Business Machines Corporation | Method and system for supporting dual conventions for methods that return structures |
CN1809812A (en) * | 2003-04-18 | 2006-07-26 | 盎司实验室股份有限公司 | Method ans system for detecting vulnerabilities in source code |
CN1975666A (en) * | 2005-11-28 | 2007-06-06 | 安捷伦科技有限公司 | Software program with alternative function libraries |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62262135A (en) | 1986-05-09 | 1987-11-14 | Nec Corp | Linking time decision system for coupling external procedure |
JPS6324422A (en) | 1986-07-17 | 1988-02-01 | Nec Corp | Coexistence system for more than two kinds of access procedures in segment system computer |
JPH0322141A (en) | 1989-06-20 | 1991-01-30 | Fujitsu Ltd | Call intermediation system between different languages |
US7350193B2 (en) | 2004-09-30 | 2008-03-25 | Motorola, Inc. | Procedure invocation in an integrated computing environment having both compiled and interpreted code segments |
US7412710B2 (en) * | 2004-11-12 | 2008-08-12 | Red Hat, Inc. | System, method, and medium for efficiently obtaining the addresses of thread-local variables |
US20070157178A1 (en) * | 2006-01-04 | 2007-07-05 | International Business Machines Corporation | Cross-module program restructuring |
JP5128602B2 (en) * | 2006-10-02 | 2013-01-23 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method and apparatus for making dynamically linked function calls for program code conversion |
US8032877B2 (en) * | 2006-10-20 | 2011-10-04 | International Business Machines Corporation | Compiler neutral linking solution for C++ code |
US8296745B2 (en) * | 2007-12-31 | 2012-10-23 | Oracle America, Inc. | Method and apparatus for portable stub generation |
US8291401B2 (en) * | 2008-08-07 | 2012-10-16 | International Business Machines Corporation | Processing symbols associated with shared assemblies |
US8464230B2 (en) * | 2010-04-13 | 2013-06-11 | Intel Corporation | Methods and systems to implement non-ABI conforming features across unseen interfaces |
-
2010
- 2010-04-13 US US12/759,487 patent/US8464230B2/en active Active
-
2011
- 2011-04-11 EP EP11250455A patent/EP2378413B1/en not_active Not-in-force
- 2011-04-12 JP JP2011088417A patent/JP5384551B2/en not_active Expired - Fee Related
- 2011-04-13 CN CN201110126383.3A patent/CN102222017B/en not_active Expired - Fee Related
- 2011-04-13 KR KR1020110034452A patent/KR101293389B1/en not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199200B1 (en) * | 1994-04-15 | 2001-03-06 | International Business Machines Corporation | Method and system for supporting dual conventions for methods that return structures |
CN1809812A (en) * | 2003-04-18 | 2006-07-26 | 盎司实验室股份有限公司 | Method ans system for detecting vulnerabilities in source code |
CN1975666A (en) * | 2005-11-28 | 2007-06-06 | 安捷伦科技有限公司 | Software program with alternative function libraries |
Also Published As
Publication number | Publication date |
---|---|
EP2378413B1 (en) | 2013-03-27 |
KR101293389B1 (en) | 2013-08-05 |
US20110252409A1 (en) | 2011-10-13 |
JP2011222022A (en) | 2011-11-04 |
KR20110114497A (en) | 2011-10-19 |
EP2378413A3 (en) | 2011-12-07 |
CN102222017A (en) | 2011-10-19 |
JP5384551B2 (en) | 2014-01-08 |
EP2378413A2 (en) | 2011-10-19 |
US8464230B2 (en) | 2013-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102222017B (en) | Methods and systems to implement non-ABI conforming features across unseen interfaces | |
US9632761B2 (en) | Distribute workload of an application to a graphics processing unit | |
KR102354717B1 (en) | Code service for language-independent dispatch | |
US9134974B2 (en) | Source code separation and generation for heterogeneous central processing unit (CPU) computational devices | |
JP2019079522A (en) | Compiling method | |
CN107943469A (en) | A kind of dissemination method and device of intelligence contract | |
US20040083462A1 (en) | Method and apparatus for creating and executing integrated executables in a heterogeneous architecture | |
US20180004495A1 (en) | Verification of a dataflow representation of a program through static type-checking | |
CN109656608A (en) | A kind of MCU firmware upgrade method and its relevant device | |
CN110865814B (en) | Compiler implementation method and system supporting heterogeneous computing core architecture | |
CN106802804B (en) | Method and system for visualizing variable association component of human-computer interface | |
CN105373411B (en) | A kind of On-board programming system and design method for spaceborne digital signal processor | |
CN103049710A (en) | Field-programmable gate array (FPGA) chip for SM2 digital signature verification algorithm | |
CN1460208A (en) | Secure software SMI dispatching using caller address | |
CN107329762A (en) | A kind of method and system for describing to service with integrated software | |
CN103631585A (en) | Method and system for developing application program | |
CN104166539A (en) | Parallel atomic increment | |
CN104412230A (en) | Integrated-circuit radio | |
CN112346778B (en) | Optimization method for automatically generating byte codes during compiling of Java program | |
US11435989B2 (en) | Thread-local return structure for asynchronous state machine | |
CN115390986A (en) | Intelligent contract parallel execution system based on state cryptographic chip | |
WO2022035476A1 (en) | Representing asynchronous state machine in intermediate code | |
CN112416916A (en) | Data verification method and device, electronic equipment and readable storage medium | |
WO2022053152A1 (en) | Method of interleaved processing on a general-purpose computing core | |
Sarkar et al. | Higher-order concurrency for microcontrollers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140319 Termination date: 20210413 |