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 PDF

Info

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
Application number
CN201110126383.3A
Other languages
Chinese (zh)
Other versions
CN102222017A (en
Inventor
Z·安萨里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN102222017A publication Critical patent/CN102222017A/en
Application granted granted Critical
Publication of CN102222017B publication Critical patent/CN102222017B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link 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

By invisible Interface realization, do not meet the method and system of ABI feature
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.
Environment 100 can comprise compiler 116, in order to a code module 102 and 104 is compiled as to corresponding the first and second collectors 118 and 120.Alternately, code module 102 and one of 104 can be compiled by another compiler.Collector 118 and 120 can comprise machine readable code.
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.
Environment 100 can comprise link system 136, in order to link collector 118 and 120, to using, allows computer system that collector 118 and 120 is carried out as integrated computer program 137.Fig. 1 comprises from calling the link 138 of 126 entrances 125 to called routine 124.
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.
Interface code 132 can be configured to parameter group 114 to move to register R1 and R2 from allocating stack, and function code 126 can be configured to access in the parameter group 114 at register R1 and R2 place, for example described above with reference to the called routine 124 in Fig. 1.
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.
Logical one 206 comprises compiler logic 1210, for example, with so that processor 1202 compiling one code modules 102 and/or a code module 104 are to generate corresponding collector 200 and 300, above described in one or more example.Alternately, code module 102 or code module 104 can be by another compiler compiling to generate respectively collector 118 or collector 120.
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.
CN201110126383.3A 2010-04-13 2011-04-13 Methods and systems to implement non-ABI conforming features across unseen interfaces Expired - Fee Related CN102222017B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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