JP2023538811A - フォーリンコードのエミュレーションをサポートするためのネイティブエミュレーション互換可能アプリケーションバイナリインタフェース - Google Patents

フォーリンコードのエミュレーションをサポートするためのネイティブエミュレーション互換可能アプリケーションバイナリインタフェース Download PDF

Info

Publication number
JP2023538811A
JP2023538811A JP2023503140A JP2023503140A JP2023538811A JP 2023538811 A JP2023538811 A JP 2023538811A JP 2023503140 A JP2023503140 A JP 2023503140A JP 2023503140 A JP2023503140 A JP 2023503140A JP 2023538811 A JP2023538811 A JP 2023538811A
Authority
JP
Japan
Prior art keywords
abi
function
native
foreign
isa
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.)
Withdrawn
Application number
JP2023503140A
Other languages
English (en)
Japanese (ja)
Other versions
JP2023538811A5 (https=
Inventor
デ ジュスト テイシェイラ,ペドロ ミゲル セケイラ
ヨシップ ミホカ,ダレク
ロバート ベリー,ジョン
チャールズ ハドリー,ラッセル
デイビッド クリアリー,ジェームズ
シウ イェーン ダン,クラレンス
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of JP2023538811A publication Critical patent/JP2023538811A/ja
Publication of JP2023538811A5 publication Critical patent/JP2023538811A5/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • G06F9/44542Retargetable
    • G06F9/44547Fat binaries
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Executing Machine-Instructions (AREA)
  • Stored Programmes (AREA)
JP2023503140A 2020-08-31 2021-05-03 フォーリンコードのエミュレーションをサポートするためのネイティブエミュレーション互換可能アプリケーションバイナリインタフェース Withdrawn JP2023538811A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/008,270 US11231918B1 (en) 2020-08-31 2020-08-31 Native emulation compatible application binary interface for supporting emulation of foreign code
US17/008,270 2020-08-31
PCT/US2021/030388 WO2022046192A1 (en) 2020-08-31 2021-05-03 Native emulation compatible application binary interface for supporting emulation of foreign code

Publications (2)

Publication Number Publication Date
JP2023538811A true JP2023538811A (ja) 2023-09-12
JP2023538811A5 JP2023538811A5 (https=) 2024-04-03

Family

ID=76060003

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023503140A Withdrawn JP2023538811A (ja) 2020-08-31 2021-05-03 フォーリンコードのエミュレーションをサポートするためのネイティブエミュレーション互換可能アプリケーションバイナリインタフェース

Country Status (6)

Country Link
US (4) US11231918B1 (https=)
EP (2) EP4550121A3 (https=)
JP (1) JP2023538811A (https=)
KR (1) KR20230058608A (https=)
CN (1) CN115989479A (https=)
WO (1) WO2022046192A1 (https=)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240427648A1 (en) * 2023-06-21 2024-12-26 International Business Machines Corporation Eye-catcher injection into library transformation

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11403100B2 (en) 2020-08-31 2022-08-02 Microsoft Technology Licensing, Llc Dual architecture function pointers having consistent reference addresses
DE102023119583A1 (de) * 2023-07-25 2025-01-30 Cariad Se Verfahren zur Ausführung eines Funktionsaufrufs, System und Computerprogrammprodukt
CN117827286B (zh) * 2024-03-05 2024-04-26 先进计算与关键软件(信创)海河实验室 Risc-v架构二进制转译文件复用方法、装置及存储介质

Family Cites Families (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5122873A (en) 1987-10-05 1992-06-16 Intel Corporation Method and apparatus for selectively encoding and decoding a digital motion video signal at multiple resolution levels
US4969204A (en) 1989-11-29 1990-11-06 Eastman Kodak Company Hybrid residual-based hierarchical storage and display method for high resolution digital images in a multiuse environment
US5050230A (en) 1989-11-29 1991-09-17 Eastman Kodak Company Hybrid residual-based hierarchical storage and display method for high resolution digital images in a multiuse environment
US5223701A (en) 1990-10-30 1993-06-29 Ommiplanar Inc. System method and apparatus using multiple resolution machine readable symbols
US5502576A (en) 1992-08-24 1996-03-26 Ramsay International Corporation Method and apparatus for the transmission, storage, and retrieval of documents in an electronic domain
US5301037A (en) 1992-11-25 1994-04-05 Xerox Corporation Resolution conversion with simulated multi-bit gray
US5452456A (en) 1992-12-18 1995-09-19 Apple Computer, Inc. Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment
US5628016A (en) 1994-06-15 1997-05-06 Borland International, Inc. Systems and methods and implementing exception handling using exception registration records stored in stack memory
US5638525A (en) 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US5619665A (en) 1995-04-13 1997-04-08 Intrnational Business Machines Corporation Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture
US5933642A (en) * 1995-04-17 1999-08-03 Ricoh Corporation Compiling system and method for reconfigurable computing
US5926642A (en) 1995-10-06 1999-07-20 Advanced Micro Devices, Inc. RISC86 instruction set
US6226789B1 (en) 1996-01-29 2001-05-01 Compaq Computer Corporation Method and apparatus for data flow analysis
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
US6055649A (en) 1997-11-19 2000-04-25 Texas Instruments Incorporated Processor test port with scan chains and data streaming
US6553429B1 (en) 1998-06-05 2003-04-22 Microsoft Corporation Fast conditional thunk utility
US6763139B1 (en) 1998-07-03 2004-07-13 Canon Kabushiki Kaisha Image coding method and apparatus for localized decoding at multiple resolutions
JP3883028B2 (ja) 1998-12-14 2007-02-21 株式会社リコー 画像符号化装置及び方法
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US6848111B1 (en) 1999-02-02 2005-01-25 Sun Microsystems, Inc. Zero overhead exception handling
US6920610B1 (en) 1999-03-02 2005-07-19 Microsoft Corporation Method and system for browsing a low-resolution image
US6880122B1 (en) 1999-05-13 2005-04-12 Hewlett-Packard Development Company, L.P. Segmenting a document into regions associated with a data type, and assigning pipelines to process such regions
US6870545B1 (en) 1999-07-26 2005-03-22 Microsoft Corporation Mixed but indistinguishable raster and vector image data types
US6442752B1 (en) 1999-08-26 2002-08-27 Unisys Corporation Method, apparatus, and computer program product for replacing a dynamic link library (dll) of a first computing environment with a dll of a second computing environment that can be invoked from the first computing environment in a transparent manner
US6641051B1 (en) 1999-09-24 2003-11-04 Xerox Corporation System for embedded digital data that allows embedding of data around known obstructions
DE19958553A1 (de) 1999-12-04 2001-06-07 Luratech Ges Fuer Luft Und Rau Verfahren zur Kompression von gescannten Farb- und/oder Graustufendokumenten
US7219335B1 (en) 1999-12-08 2007-05-15 Intel Corporation Method and apparatus for stack emulation during binary translation
US6353483B1 (en) 2000-01-10 2002-03-05 Imagex, Inc. Postscript to bitmap conversion of graphic image files
US6470094B1 (en) 2000-03-14 2002-10-22 Intel Corporation Generalized text localization in images
US7062087B1 (en) 2000-05-16 2006-06-13 International Busniness Machines Corporation System and method for optimizing color compression using transparency control bits
JP4189506B2 (ja) 2000-06-09 2008-12-03 コニカミノルタビジネステクノロジーズ株式会社 画像処理のための装置、方法及び記録媒体
JP4612782B2 (ja) 2000-09-27 2011-01-12 キヤノン株式会社 画像処理装置、及びその方法、並びにプログラム、記憶媒体
US6725779B2 (en) 2000-10-17 2004-04-27 Agfa-Gevaert Multi-level printing process reducing aliasing in graphics
EP1354292B1 (en) 2000-12-01 2012-04-04 Imax Corporation Method and apparatus FOR DEVELOPING HIGH-RESOLUTION IMAGERY
US20020089549A1 (en) 2001-01-09 2002-07-11 Munro James A. Image having a hierarchical structure
US20020097417A1 (en) 2001-01-19 2002-07-25 Chang William Ho System for universal data output
AU2002316067A1 (en) 2001-05-02 2002-11-11 Bitstream Inc. Methods, systems, and programming for producing and displaying subpixel-optimized font bitmaps using non-linear color balancing
JP3790683B2 (ja) 2001-07-05 2006-06-28 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ装置、その例外処理プログラム及びコンパイル方法
US7007198B2 (en) 2001-07-18 2006-02-28 Borland Software Corporation Method for handling exceptions of applications
US6941024B2 (en) 2002-01-14 2005-09-06 Hewlett-Packard Development Company, L.P. Coder matched layer separation and interpolation for compression of compound documents
CA2376327C (en) 2002-03-12 2009-04-28 Ibm Canada Limited-Ibm Canada Limitee Executing native code in place of non-native code
US7006699B2 (en) 2002-03-27 2006-02-28 Microsoft Corporation System and method for progressively transforming and coding digital data
US7120297B2 (en) 2002-04-25 2006-10-10 Microsoft Corporation Segmented layered image system
US7024039B2 (en) 2002-04-25 2006-04-04 Microsoft Corporation Block retouching
US7110596B2 (en) 2002-04-25 2006-09-19 Microsoft Corporation System and method facilitating document image compression utilizing a mask
US6983456B2 (en) 2002-10-31 2006-01-03 Src Computers, Inc. Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms
US20040096102A1 (en) 2002-11-18 2004-05-20 Xerox Corporation Methodology for scanned color document segmentation
US20040151376A1 (en) 2003-02-05 2004-08-05 Konica Minolta Holdings, Inc. Image processing method, image processing apparatus and image processing program
US7319543B2 (en) 2003-03-17 2008-01-15 Kabushiki Kaisha Toshiba Image forming system
GB0316531D0 (en) 2003-07-15 2003-08-20 Transitive Ltd Method and apparatus for performing native binding
US7281271B1 (en) 2003-09-25 2007-10-09 Symantec Corporation Exception handling validation system and method
DE10357490A1 (de) 2003-12-09 2005-07-21 OCé PRINTING SYSTEMS GMBH Verfahren und System zum Verarbeiten von Druckdaten mindestens einer Druckseite
US7376272B2 (en) 2004-06-14 2008-05-20 Xerox Corporation Method for image segmentation to identify regions with constant foreground color
US7283674B2 (en) 2004-06-25 2007-10-16 Xerox Corporation Using graphic objects in MFD scan-to-export function
JP2006012027A (ja) 2004-06-29 2006-01-12 Seiko Epson Corp 光学読取装置、認識処理装置、文字読取方法及びプログラム、並びに磁気インク文字読取装置、及びpos端末装置
US7450268B2 (en) 2004-07-02 2008-11-11 Hewlett-Packard Development Company, L.P. Image reproduction
US7596265B2 (en) 2004-09-23 2009-09-29 Hewlett-Packard Development Company, L.P. Segmenting pixels in an image based on orientation-dependent adaptive thresholds
US7490320B2 (en) 2005-02-18 2009-02-10 International Business Machines Corporation Method and apparatus for transforming Java Native Interface function calls into simpler operations during just-in-time compilation
US7530059B2 (en) 2005-02-18 2009-05-05 International Business Machines Corporation Method for inlining native functions into compiled java code
US20070006178A1 (en) * 2005-05-12 2007-01-04 Microsoft Corporation Function-level just-in-time translation engine with multiple pass optimization
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.
US7613363B2 (en) 2005-06-23 2009-11-03 Microsoft Corp. Image superresolution through edge extraction and contrast enhancement
US20070094075A1 (en) 2005-08-11 2007-04-26 Gary Graham Coupon Book and Methods of Design and Use Thereof
US7580569B2 (en) 2005-11-07 2009-08-25 Xerox Corporation Method and system for generating contone encoded binary print data streams
US7885455B2 (en) 2006-04-14 2011-02-08 UTC Fire & Security Americas Corporation, Inc Method of combining images of multiple resolutions to produce an enhanced active appearance model
GB2442495B (en) 2006-10-02 2009-04-01 Transitive Ltd Method and apparatus for handling dynamically linked function cells with respect to program code conversion
KR100928679B1 (ko) 2007-01-02 2009-11-27 삼성전자주식회사 광대역 무선통신시스템에서 레인징 장치 및 방법
US8024710B2 (en) 2007-04-27 2011-09-20 Microsoft Corporation Unwinding unwindable code
US8014560B2 (en) 2007-05-25 2011-09-06 Xerox Corporation Preserving scanner signature using MRC technology
US8146106B2 (en) 2007-12-31 2012-03-27 Intel Corporation On-demand emulation via user-level exception handling
US8391638B2 (en) 2008-06-04 2013-03-05 Microsoft Corporation Hybrid image format
US9250938B2 (en) 2008-10-15 2016-02-02 Microsoft Technology Licensing, Llc Caching runtime generated code
US8122366B2 (en) 2009-09-16 2012-02-21 Georgia Tech Research Corporation Systems and methods for visualization of exception handling constructs
US9129062B1 (en) * 2010-05-20 2015-09-08 Vmware, Inc. Intercepting subroutine return in unmodified binaries
US8924922B2 (en) * 2010-06-14 2014-12-30 Microsoft Corporation Pre-compiling hosted managed code
US8661410B2 (en) 2011-03-11 2014-02-25 Oracle International Corporation Managed enterprise software components as dynamic services
US9495183B2 (en) * 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US9098309B2 (en) * 2011-09-23 2015-08-04 Qualcomm Incorporated Power consumption optimized translation of object code partitioned for hardware component based on identified operations
US9063760B2 (en) 2011-10-13 2015-06-23 International Business Machines Corporation Employing native routines instead of emulated routines in an application being emulated
AU2012373895B2 (en) 2012-03-22 2016-01-21 Intel Corporation Nested emulation and dynamic linking environment
US20140222410A1 (en) * 2012-03-22 2014-08-07 Xiao Dong Lin Hybrid emulation and kernel function processing systems and methods
US11003464B2 (en) 2012-04-19 2021-05-11 Microsoft Technology Licensing, Llc Control flow integrity enforcement at scale
US20130326489A1 (en) 2012-05-30 2013-12-05 Vector Fabrics B.V. Method and system for translating non-native instructions
WO2014022980A1 (en) * 2012-08-08 2014-02-13 Intel Corporation Isa bridging including support for call to overidding virtual functions
GB2508433A (en) 2012-12-03 2014-06-04 Ibm Migration of processes in heterogeneous computing environments using emulating and compiling source code on target system
US9116712B2 (en) * 2013-02-28 2015-08-25 Microsoft Technology Licensing, Llc Compile based obfuscation
US9405937B2 (en) 2013-06-28 2016-08-02 Intel Corporation Method and apparatus for securing a dynamic binary translation system
US9065819B1 (en) 2013-12-23 2015-06-23 Cellco Partnership Single sign on (SSO) authorization and authentication for mobile communication devices
US9448788B1 (en) 2014-01-22 2016-09-20 SecondWrite LLC Binary rewriting system
US10120663B2 (en) 2014-03-28 2018-11-06 Intel Corporation Inter-architecture compatability module to allow code module of one architecture to use library module of another architecture
US9329875B2 (en) * 2014-04-28 2016-05-03 International Business Machines Corporation Global entry point and local entry point for callee function
US10430169B2 (en) 2014-05-30 2019-10-01 Apple Inc. Language, function library, and compiler for graphical and non-graphical computation on a graphical processor unit
US20150379169A1 (en) 2014-06-27 2015-12-31 Yong Wu Efficient emulation for pseudo-wrapped callback handling in binary translation software
US9354947B2 (en) * 2014-10-28 2016-05-31 International Business Machines Corporation Linking a function with dual entry points
US9395964B2 (en) * 2014-10-30 2016-07-19 International Business Machines Corporation Rewriting symbol address initialization sequences
US9864518B2 (en) * 2014-11-10 2018-01-09 International Business Machines Corporation Assigning home memory addresses to function call parameters
US9557917B2 (en) * 2014-11-10 2017-01-31 International Business Machines Corporation Conditional stack frame allocation
KR102332209B1 (ko) * 2014-12-09 2021-11-29 인텔 코포레이션 2개의 명령어 세트 아키텍처들에 따라 컴파일링된 애플리케이션 코드의 실행을 위한 시스템 및 방법
US9798559B2 (en) * 2014-12-27 2017-10-24 Mcafee, Inc. Trusted binary translation
US10303498B2 (en) 2015-10-01 2019-05-28 Microsoft Technology Licensing, Llc Performance optimizations for emulators
US10452409B2 (en) 2015-10-23 2019-10-22 Oracle International Corporation Universal adapter for native calling
WO2018006072A1 (en) 2016-06-30 2018-01-04 Clause, Inc. Systems and method for forming, storing, managing,and executing contracts
US10713213B2 (en) * 2016-12-21 2020-07-14 Intel Corporation Systems and methods for multi-architecture computing
US10552207B2 (en) * 2016-12-21 2020-02-04 Intel Corporation Systems and methods for multi-architecture computing including program stack translation
US10657698B2 (en) * 2017-06-22 2020-05-19 Microsoft Technology Licensing, Llc Texture value patch used in GPU-executed program sequence cross-compilation
US10241766B2 (en) * 2017-06-22 2019-03-26 Microsoft Technology Licensing, Llc Application binary interface cross compilation
US10445216B2 (en) * 2017-08-25 2019-10-15 Microsoft Technology Licensing, Llc Debugging program code at instruction level through emulation
US10705973B2 (en) * 2017-09-19 2020-07-07 International Business Machines Corporation Initializing a data structure for use in predicting table of contents pointer values
US10705850B2 (en) 2017-10-11 2020-07-07 Microsoft Technology Licensing, Llc Stack frame unwinding for exception handling
US10152313B1 (en) * 2017-12-19 2018-12-11 International Business Machines Corporation Shared library transformation on the same architecture
US11403100B2 (en) 2020-08-31 2022-08-02 Microsoft Technology Licensing, Llc Dual architecture function pointers having consistent reference addresses

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240427648A1 (en) * 2023-06-21 2024-12-26 International Business Machines Corporation Eye-catcher injection into library transformation

Also Published As

Publication number Publication date
KR20230058608A (ko) 2023-05-03
EP4204957A1 (en) 2023-07-05
EP4550121A2 (en) 2025-05-07
US20250251922A1 (en) 2025-08-07
US20230418581A1 (en) 2023-12-28
CN115989479A (zh) 2023-04-18
US20220137942A1 (en) 2022-05-05
EP4204957B1 (en) 2025-06-25
US11720335B2 (en) 2023-08-08
WO2022046192A1 (en) 2022-03-03
EP4550121A3 (en) 2025-07-30
US11231918B1 (en) 2022-01-25
US12229541B2 (en) 2025-02-18

Similar Documents

Publication Publication Date Title
EP4204957B1 (en) Native emulation compatible application binary interface for supporting emulation of foreign code
US10929149B2 (en) Method and system for updating firmware
RU2335798C2 (ru) Выравнивание данных между собственными и несобственными совместно используемыми структурами данных
US20050108690A1 (en) System and method of generating applications for mobile devices
EP4204952B1 (en) Hybrid binaries supporting code stream folding
US11188361B1 (en) Cross-architecture software distribution using a virtual instruction set architecture
EP4239474A1 (en) Serverless container starting method and related device
US20200272482A1 (en) Unikernel provisioning
CN111625317A (zh) 一种业务系统的容器云构建方法及相关装置
EP4204958B1 (en) Dual architecture function pointers having consistent reference addresses
US11055115B1 (en) Virtual machine conversion in distributed system of remote desktops
US11989569B2 (en) Unikernel provisioning
US20220261238A1 (en) Method and system for deploying third-party application to microcontroller by means of edge assistance
Almajed et al. Binary transformation of applications to run on bare PCs
Toivanen OpenDataPlane (ODP) as a Part of a Linux Operating System Image Built with Yocto Project
CN115878197A (zh) 基于设备树的启动优化方法、系统、芯片、设备和介质
CN117724775A (zh) 应用程序启动方法、装置、设备及存储介质
CN119938159A (zh) 一种软件加载方法、云管理平台及集群
CN102073529B (zh) 超级内核组件的升级方法和计算机系统
CN118132170A (zh) 异构处理器动态适配方法、装置以及系统
Gray et al. Darbat release 0.2 notes
CN102073529A (zh) 超级内核组件的升级方法和计算机系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240322

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240322

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20250120