Performance Optimizations for Emulators
US-2017097835-A1 · Apr 6, 2017 · US
US10705850B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10705850-B2 |
| Application number | US-201715730713-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 11, 2017 |
| Priority date | Oct 11, 2017 |
| Publication date | Jul 7, 2020 |
| Grant date | Jul 7, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system for exception handling is configured to, in response to detection of an exception during a function call, search for an exception handler to handle the detected exception by unwinding a stack across a plurality of frames. A binary includes functions associated with one of a first application binary interface (ABI) or a second ABI. The stack includes a transition frame created between frames of the first ABI and the second ABI during execution of the binaries. The system is configured to detect the transition frame in the stack when encountering a change from a frame of one ABI to a frame of another ABI, and translate an interface context therebetween to handle the exception.
Opening claim text (preview).
What is claimed is: 1. A system for exception handling, the system comprising: an exception dispatch mechanism configured to, in response to detection of an exception during a function call, search for an exception handler to handle the detected exception by unwinding a stack across a plurality of frames, the plurality of frames including frames created by functions of a binary, the functions being of a first application binary interface (ABI) and a second ABI, the first and second ABIs having different exception handling methods, the stack including a transition frame created between frames of the first ABI and the second ABI during execution of the binary; a transition handler configured to detect the transition frame in the stack when encountering a change from a frame of the first ABI to a frame of the second ABI, the transition frame containing an exception handler that follows exception handling of the second ABI by translating an interface context of the first ABI to an interface context of the second ABI using information in the transition frame, wherein the information in the transition frame comprises exception handling relevant information for frames on each side of the transition frame; and an execution handler configured to translate the interface context from the first ABI to the second ABI, the exception handler of the second ABI handling the exception using the translated interface context to allow the function call to be performed, the translated interface context defining functionality to perform the function call on a host computing device operating as a native host machine. 2. The system of claim 1 , wherein the first ABI is one of a chain-based exception handling method or a frame-based exception handling method, and the second ABI has the other one of the chain-based exception handling method or the frame-based exception handling method, the transition frame informs the exception handler that an ABI switch is taking place and retrieves information relevant to the exception handler taking over the exception handling, and wherein the transition frame links a stack unwinder of the first ABI with a stack unwinder of the second ABI. 3. The system of claim 1 , wherein the binary comprises an emulated binary that is one of x86 or ARM64 and a hybrid binary that is one of x86 or ARM64, wherein the transition frame enables transition between an emulated execution and a pre-compiled execution, adapts parameter passing rules, maps host-guest registers, and saves registers to be preserved across a function call that are not mapped in the transition. 4. The system of claim 1 , further comprising an emulator configured to execute the binary, wherein during execution the stack including the plurality of frames is created, the transition handler configured to create the transition frame during execution. 5. The system of claim 1 , wherein the exception handler of the transition frame generates seeding context information when transitioning from frames of the first ABI to frames of the second ABI. 6. A computerized method for exception handling, the computerized method comprising: searching for, in response to detection of an exception during a function call, an exception handler to handle the detected exception by unwinding a stack across a plurality of frames, the plurality of frames including a binary having functions associated with one of a first application binary interface (ABI) or a second ABI, the stack including a transition frame created between frames of the first ABI and the second ABI during execution of the binary; detecting the transition frame in the stack when encountering a change from a frame of the first ABI to a frame of the second ABI; translating an interface context of the first ABI to an interface context of the second ABI using information in the transition frame to unwind the frame of the second ABI using the translated interface context, the translated interface context defining functionality to perform the function call on a host computing device operating as a native host machine, the exception handler following exception handling of the second ABI, wherein the information in the transition frame comprises exception handling relevant information for frames on each side of the transition frame; and handling the exception with the exception handler following exception handling of the second ABI using the translated interface context. 7. The computerized method of claim 6 , wherein the plurality of frames includes frames created by functions of both an emulated binary and a hybrid binary. 8. The computerized method of claim 6 , wherein the first and second ABIs have different exception handling methods. 9. The computerized method of claim 6 , wherein the first ABI is one of a chain-based exception handling method or a frame-based exception handling method, and the second ABI has the other one of the chain-based exception handling method or the frame-based exception handling method. 10. The computerized method of claim 6 , wherein the first and second ABIs are chain-based exception handling methods. 11. The computerized method of claim 6 , wherein the first and second ABIs are frame-based exception handling methods. 12. The computerized method of claim 6 , wherein the plurality of frames includes frames created by functions of both an emulated binary and a hybrid binary, the emulated binary being one of x86 or ARM64 and the hybrid binary being one of x86 or ARM64. 13. The computerized method of claim 6 , further comprising (i) executing the binary, wherein during execution the stack including the plurality of frames is created, and (ii) creating the transition frame during execution. 14. The computerized method of claim 6 , further comprising generating seeding context information when transitioning from frames of the first ABI to frames of the second ABI. 15. One or more computer storage media having computer-executable instructions for exception handling that, upon execution by a processor, cause the processor to at least: search for, in response to detection of an exception during a function call, an exception handler to handle the detected exception by unwinding a stack across a plurality of frames, the plurality of frames including frames created by functions associated with one of a first application binary interface (ABI) or a second ABI, the stack including a transition frame created between frames of the first ABI and the second ABI during execution of the binaries; detect the transition frame in the stack when encountering a change from a frame of the first ABI to a frame of the second ABI; translate an interface context of the first ABI to an interface context of the second ABI using information in the transition frame to unwind the frame of the second ABI, the translated interface context defining functionality to perform the function call on a host computing device operating as a native host machine, the exception handler following exception handling of the second ABI, wherein the information in the transition frame comprises exception handling relevant information for frames on each side of the transition frame; and handle the exception with the exception handler following exception handling of the second ABI using the translated interface context. 16. The one or more computer storage media of claim 15 , wherein the plurality of frames includes frames created by functions of both an emulated binary and a hybrid binary. 17. The one or more computer storage media of claim 15 , wherein the first and second ABIs have different exception handl
Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines · CPC title
Exception handling · CPC title
by interrupt, e.g. masked · CPC title
Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40) · CPC title
Executing subprograms · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.