CA2376327A1 - Executing native code in place of non-native code - Google Patents

Executing native code in place of non-native code Download PDF

Info

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
Application number
CA002376327A
Other languages
French (fr)
Other versions
CA2376327C (en
Inventor
Brad J. Barclay
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.)
IBM Canada Ltd
Original Assignee
IBM Canada Ltd
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 IBM Canada Ltd filed Critical IBM Canada Ltd
Priority to CA002376327A priority Critical patent/CA2376327C/en
Priority to US10/235,598 priority patent/US7194735B2/en
Publication of CA2376327A1 publication Critical patent/CA2376327A1/en
Application granted granted Critical
Publication of CA2376327C publication Critical patent/CA2376327C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime 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.
CA002376327A 2002-03-12 2002-03-12 Executing native code in place of non-native code Expired - Fee Related CA2376327C (en)

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)

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

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

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

Cited By (3)

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