CN115989479A - 用于支持外部代码的仿真的本机仿真兼容的应用二进制接口 - Google Patents

用于支持外部代码的仿真的本机仿真兼容的应用二进制接口 Download PDF

Info

Publication number
CN115989479A
CN115989479A CN202180053343.2A CN202180053343A CN115989479A CN 115989479 A CN115989479 A CN 115989479A CN 202180053343 A CN202180053343 A CN 202180053343A CN 115989479 A CN115989479 A CN 115989479A
Authority
CN
China
Prior art keywords
abi
function
native
compiled version
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.)
Pending
Application number
CN202180053343.2A
Other languages
English (en)
Chinese (zh)
Inventor
P·M·塞凯拉·德·胡斯托·特谢拉
D·J·米霍克卡
J·R·贝里
R·C·哈德利
J·D·克利里
C·S·Y·丹格
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 CN115989479A publication Critical patent/CN115989479A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/47Retargetable compilers
    • 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)
CN202180053343.2A 2020-08-31 2021-05-03 用于支持外部代码的仿真的本机仿真兼容的应用二进制接口 Pending CN115989479A (zh)

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 (1)

Publication Number Publication Date
CN115989479A true CN115989479A (zh) 2023-04-18

Family

ID=76060003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180053343.2A Pending CN115989479A (zh) 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=)

Families Citing this family (4)

* 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
GB2632091A (en) * 2023-06-21 2025-01-29 Ibm Eye-catcher injection into library transformation
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架构二进制转译文件复用方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101517536A (zh) * 2005-05-12 2009-08-26 微软公司 带多重优化的函数级即时翻译引擎
CN102279765A (zh) * 2010-06-14 2011-12-14 微软公司 预编译托存托管代码
CN105103127A (zh) * 2013-02-28 2015-11-25 微软技术许可有限责任公司 基于编译器的混淆
US20170097835A1 (en) * 2015-10-01 2017-04-06 Microsoft Technology Licensing, Llc Performance Optimizations for Emulators
CN107533622A (zh) * 2014-12-27 2018-01-02 迈克菲有限责任公司 可信二进制文件翻译

Family Cites Families (106)

* 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
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
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
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개의 명령어 세트 아키텍처들에 따라 컴파일링된 애플리케이션 코드의 실행을 위한 시스템 및 방법
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101517536A (zh) * 2005-05-12 2009-08-26 微软公司 带多重优化的函数级即时翻译引擎
CN102279765A (zh) * 2010-06-14 2011-12-14 微软公司 预编译托存托管代码
CN105103127A (zh) * 2013-02-28 2015-11-25 微软技术许可有限责任公司 基于编译器的混淆
CN107533622A (zh) * 2014-12-27 2018-01-02 迈克菲有限责任公司 可信二进制文件翻译
US20170097835A1 (en) * 2015-10-01 2017-04-06 Microsoft Technology Licensing, Llc Performance Optimizations for Emulators

Also Published As

Publication number Publication date
KR20230058608A (ko) 2023-05-03
JP2023538811A (ja) 2023-09-12
EP4204957A1 (en) 2023-07-05
EP4550121A2 (en) 2025-05-07
US20250251922A1 (en) 2025-08-07
US20230418581A1 (en) 2023-12-28
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
US12229541B2 (en) Dual architecture function pointers having consistent reference addresses
US10795660B1 (en) Live code updates
US20050108690A1 (en) System and method of generating applications for mobile devices
US20250199785A1 (en) Compilation methods, compilers, and wasm virtual machines
US10684846B2 (en) Using semantic annotations to control compatibility behaviors
RU2335798C2 (ru) Выравнивание данных между собственными и несобственными совместно используемыми структурами данных
EP4204952B1 (en) Hybrid binaries supporting code stream folding
WO2019005228A1 (en) AUTOMATED ADAPTATION OF A SOURCE CODE IN ORDER TO INJECT FUNCTIONS BETWEEN VERSIONS OF A PLATFORM
WO2022110775A1 (zh) 一种无服务容器启动方法及相关设备
US10572275B2 (en) Compatible dictionary layout
EP4204958B1 (en) Dual architecture function pointers having consistent reference addresses
JP5506936B2 (ja) 意味論的値を利用するオブジェクト・レベルの互換性及びクラスのサイズ変更
US9098317B2 (en) Optional retargeting of library references
KR20100110710A (ko) 동적 라이브러리를 갖는 인터페이스를 간단히 하는 방법, 시스템 및 컴퓨터 프로그램 제품
CN114443052A (zh) 一种il指令运行时的动态特例化方法和装置
US20220261238A1 (en) Method and system for deploying third-party application to microcontroller by means of edge assistance
CN121219677A (zh) 到库变换的眼标注入
HK40089522A (zh) 业务处理方法、装置、设备及存储介质
CN117724775A (zh) 应用程序启动方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination