CA2376327A1 - Executing native code in place of non-native code - Google Patents
Executing native code in place of non-native code Download PDFInfo
- Publication number
- CA2376327A1 CA2376327A1 CA002376327A CA2376327A CA2376327A1 CA 2376327 A1 CA2376327 A1 CA 2376327A1 CA 002376327 A CA002376327 A CA 002376327A CA 2376327 A CA2376327 A CA 2376327A CA 2376327 A1 CA2376327 A1 CA 2376327A1
- Authority
- CA
- Canada
- Prior art keywords
- native code
- code
- place
- data processing
- processing system
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
Abstract
A code execution mechanism is provided which can direct a data processing system to execute native code in place of executing non-native code, in which the nati ve code is functionally equivalent to the non-native code. The data processing system i s operatively coupled to a computer readable memory for storing the functionally equivalen t native code and for storing the non-native code. The code execution mechanism directs the da ta processing system to identify presence of the native code when the native code functionally corresponds with a portion of non-native code, and directs the data processing system to execute the native code in place of the non-native code if the presence of the native code is identified. When non functionally equivalent native code is identified, the data processing syste m executes the non-native code.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA002376327A CA2376327C (en) | 2002-03-12 | 2002-03-12 | Executing native code in place of non-native code |
US10/235,598 US7194735B2 (en) | 2002-03-12 | 2002-09-05 | Executing native code in place of non-native code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA002376327A CA2376327C (en) | 2002-03-12 | 2002-03-12 | Executing native code in place of non-native code |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2376327A1 true CA2376327A1 (en) | 2003-09-12 |
CA2376327C CA2376327C (en) | 2009-04-28 |
Family
ID=27810561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002376327A Expired - Fee Related CA2376327C (en) | 2002-03-12 | 2002-03-12 | Executing native code in place of non-native code |
Country Status (2)
Country | Link |
---|---|
US (1) | US7194735B2 (en) |
CA (1) | CA2376327C (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7444471B1 (en) * | 2002-12-30 | 2008-10-28 | Transmeta Corporation | Method and system for using external storage to amortize CPU cycle utilization |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2434280A1 (en) * | 2003-07-03 | 2005-01-03 | Zhong L. Wang | Method and apparatus to guarantee type and initialization safety in multihreaded programs |
US7434209B2 (en) | 2003-07-15 | 2008-10-07 | Transitive Limited | Method and apparatus for performing native binding to execute native code |
GB2426840A (en) * | 2005-06-04 | 2006-12-06 | Transitive Ltd | Method of executing program code where a portion of the target code calls a native code portion which then calls a second target code portion. |
US8122440B1 (en) * | 2007-09-26 | 2012-02-21 | Netapp, Inc. | Method and apparatus for enumerating external program code dependencies |
US8578339B2 (en) * | 2007-09-26 | 2013-11-05 | Symantec Corporation | Automatically adding bytecode to a software application to determine database access information |
US8887141B2 (en) * | 2007-09-28 | 2014-11-11 | Symantec Corporation | Automatically modifying a native code module accessed from virtual machine bytecode to determine execution information |
US9176714B2 (en) * | 2007-11-12 | 2015-11-03 | International Business Machines Corporation | Re-using legacy libraries in software |
US7971032B2 (en) * | 2007-11-14 | 2011-06-28 | Vns Portfolio Llc | System for native code execution |
US20090249311A1 (en) * | 2008-03-31 | 2009-10-01 | International Business Machines Corporation | Sharing a native module of compiled code using an abstraction module of interpreted code in a virtual machine environment |
US8365154B2 (en) * | 2009-05-29 | 2013-01-29 | International Business Machines Corporation | Multi-language software development |
US9063760B2 (en) | 2011-10-13 | 2015-06-23 | International Business Machines Corporation | Employing native routines instead of emulated routines in an application being emulated |
US10303498B2 (en) | 2015-10-01 | 2019-05-28 | Microsoft Technology Licensing, Llc | Performance optimizations for emulators |
US10187473B2 (en) * | 2016-04-29 | 2019-01-22 | Intuit Inc. | Gateway policy enforcement and service metadata binding |
US11403100B2 (en) | 2020-08-31 | 2022-08-02 | Microsoft Technology Licensing, Llc | Dual architecture function pointers having consistent reference addresses |
US11231918B1 (en) | 2020-08-31 | 2022-01-25 | Microsoft Technologly Licensing, LLC | Native emulation compatible application binary interface for supporting emulation of foreign code |
US11042422B1 (en) | 2020-08-31 | 2021-06-22 | Microsoft Technology Licensing, Llc | Hybrid binaries supporting code stream folding |
US11494170B2 (en) * | 2020-10-16 | 2022-11-08 | Unisys Corporation | Proxy compilation for execution in a foreign architecture controlled by execution within a native architecture |
US11243751B1 (en) * | 2020-10-16 | 2022-02-08 | Unisys Corporation | Proxy compilation for execution in a foreign architecture controlled by execution within a native architecture |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751892A (en) * | 1995-06-15 | 1998-05-12 | Kabushiki Kaisha Toshiba | Multi-scene recording medium and apparatus for reproducing data therefrom |
US6091897A (en) | 1996-01-29 | 2000-07-18 | Digital Equipment Corporation | Fast translation and execution of a computer program on a non-native architecture by use of background translator |
US5768593A (en) | 1996-03-22 | 1998-06-16 | Connectix Corporation | Dynamic cross-compilation system and method |
US6513156B2 (en) * | 1997-06-30 | 2003-01-28 | Sun Microsystems, Inc. | Interpreting functions utilizing a hybrid of virtual and native machine instructions |
US5974256A (en) | 1997-09-29 | 1999-10-26 | International Business Machines Corporation | Method for translating graphical user interface (GUI) resource data into native java code |
KR20010072477A (en) * | 1998-08-13 | 2001-07-31 | 썬 마이크로시스템즈, 인코포레이티드 | Method and apparatus of translating and executing native code in a virtual machine environment |
US6308315B1 (en) * | 1998-10-14 | 2001-10-23 | Sun Microsystems, Inc. | System and method for automatically and selectively promoting object variables to method fields and variables in a digital computer system |
JP2002169696A (en) * | 2000-12-04 | 2002-06-14 | Mitsubishi Electric Corp | Data processing apparatus |
US7350200B2 (en) * | 2001-03-29 | 2008-03-25 | Intel Corporation | Method and system of controlling dynamically compiled native code size |
US6907519B2 (en) * | 2001-11-29 | 2005-06-14 | Hewlett-Packard Development Company, L.P. | Systems and methods for integrating emulated and native code |
-
2002
- 2002-03-12 CA CA002376327A patent/CA2376327C/en not_active Expired - Fee Related
- 2002-09-05 US US10/235,598 patent/US7194735B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7444471B1 (en) * | 2002-12-30 | 2008-10-28 | Transmeta Corporation | Method and system for using external storage to amortize CPU cycle utilization |
US7925855B1 (en) | 2002-12-30 | 2011-04-12 | O'clair Brian | Method and system for using external storage to amortize CPU cycle utilization |
US8356156B2 (en) | 2002-12-30 | 2013-01-15 | O'clair Brian | Method and system for using external storage to amortize CPU cycle utilization |
Also Published As
Publication number | Publication date |
---|---|
US20040015972A1 (en) | 2004-01-22 |
US7194735B2 (en) | 2007-03-20 |
CA2376327C (en) | 2009-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2376327A1 (en) | Executing native code in place of non-native code | |
WO2007118154A3 (en) | System and method for checking the integrity of computer program code | |
WO2005029241A3 (en) | Automated safe secure techniques for eliminating | |
EP2901266B1 (en) | Flexible acceleration of code execution | |
WO2003090074A3 (en) | Initialization of a computer system including a secure execution mode-capable processor | |
WO2011080055A3 (en) | Dynamically distributing a multi-dimensional work set across a multi-core system | |
DE60141173D1 (en) | LOGICAL REPLACEMENT OF PROCESSING IN A EMULATED COMPUTER ENVIRONMENT | |
WO2011075484A3 (en) | A secure virtualization environment bootable from an external media device | |
JP2000347871A (en) | Automatic stub/adapter generator | |
CA2300240A1 (en) | Transparent loading resources from read-only memory for an application program | |
WO2003090052A3 (en) | A computer system including a secure execution mode - capable cpu and a security services processor connected via a secure communication path | |
WO2005106736A3 (en) | Check image access system | |
EP1736880A3 (en) | Information processing apparatus, storage medium, and data rescue method | |
WO2007107707A3 (en) | Computer architecture | |
TW346606B (en) | Fast unified interrupt recovery, including branch recovery, supporting out-of-order execution | |
EP1667018A3 (en) | Using customized data to control transaction processing in a computer application | |
EP2015178A3 (en) | Information processing unit for automatically copying system information | |
EP1365321A3 (en) | Multiprocessor system | |
WO2008005825A3 (en) | Methods, systems, and computer program products for providing access to addressable entities using a non-sequential virtual address space | |
WO2007008880A3 (en) | Changing code execution path using kernel mode redirection | |
WO2008042210A3 (en) | Architecture for joint detection hardware accelerator | |
WO2007076190A3 (en) | Efficient task scheduling by assigning fixed registers to scheduler | |
WO2007044947A3 (en) | Software-firmware transfer system | |
AU5552000A (en) | Conditional instruction execution in a computer | |
EP1107117A3 (en) | Concurrent legacy and native code execution techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
MKLA | Lapsed |
Effective date: 20130312 |
|
MKLA | Lapsed |
Effective date: 20130312 |