摘要 |
<p>The invention provides a method and apparatus for switching between execution of a plurality of object code types having different conventions for invoking program procedures and performing stack manipulations. The invention may also be used to switch between different calling conventions within a single object code type. Briefly according to the invention, a computer system comprises a routine descriptor, a stack switch frame, a mode switching mechanism for switching from a first processor, code or calling convention type to a second processor, code or calling convention type and means for executing instructions in various code types. A routine descriptor describes a program or code segment and its code type and calling conventions. A routine descriptor contains, among other information, a mixed mode field which is set to a specific, predetermined value such as a value indicating an instruction which is not legal in the runtime environment of a first processor, code or calling convention type. When that instruction is encountered, control is transferred to the mode switching mechanism. A routine descriptor also contains a procedure information field which is set to a value indicating the convention for invoking a program segment and performing appropriate stack manipulations. When a routine calls a routine having a different stack model, the mode switching mechanism uses a stack switch frame to provide a transition between the two different stack types.</p> |