KR20230058608A - 외래 코드의 에뮬레이션을 지원하기 위한 네이티브 에뮬레이션 호환 애플리케이션 바이너리 인터페이스 - Google Patents

외래 코드의 에뮬레이션을 지원하기 위한 네이티브 에뮬레이션 호환 애플리케이션 바이너리 인터페이스 Download PDF

Info

Publication number
KR20230058608A
KR20230058608A KR1020237003107A KR20237003107A KR20230058608A KR 20230058608 A KR20230058608 A KR 20230058608A KR 1020237003107 A KR1020237003107 A KR 1020237003107A KR 20237003107 A KR20237003107 A KR 20237003107A KR 20230058608 A KR20230058608 A KR 20230058608A
Authority
KR
South Korea
Prior art keywords
abi
function
native
foreign
code
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.)
Abandoned
Application number
KR1020237003107A
Other languages
English (en)
Korean (ko)
Inventor
데 후스토 테이세이라 페드로 미구엘 세퀘이라
다렉 조십 미호카
존 로버트 베리
러셀 찰스 해들리
제임스 데이비드 클리어리
클라렌스 시우 옌 당
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20230058608A publication Critical patent/KR20230058608A/ko
Abandoned 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)
KR1020237003107A 2020-08-31 2021-05-03 외래 코드의 에뮬레이션을 지원하기 위한 네이티브 에뮬레이션 호환 애플리케이션 바이너리 인터페이스 Abandoned KR20230058608A (ko)

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
KR20230058608A true KR20230058608A (ko) 2023-05-03

Family

ID=76060003

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237003107A Abandoned KR20230058608A (ko) 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架构二进制转译文件复用方法、装置及存储介质

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

Also Published As

Publication number Publication date
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
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
EP2340481B1 (en) Caching runtime generated code
US10146522B1 (en) Live code updates
US10684846B2 (en) Using semantic annotations to control compatibility behaviors
US20250199785A1 (en) Compilation methods, compilers, and wasm virtual machines
US20050108690A1 (en) System and method of generating applications for mobile devices
US9841953B2 (en) Pluggable components for runtime-image generation
EP4204952B1 (en) Hybrid binaries supporting code stream folding
US11061695B2 (en) Unikernel provisioning
WO2022110775A1 (zh) 一种无服务容器启动方法及相关设备
CN107133055A (zh) 一种基于ClassLoader实现定制开发的方法
JP5506936B2 (ja) 意味論的値を利用するオブジェクト・レベルの互換性及びクラスのサイズ変更
US20180365033A1 (en) Compatible dictionary layout
EP4204958B1 (en) Dual architecture function pointers having consistent reference addresses
CN114443052A (zh) 一种il指令运行时的动态特例化方法和装置
US11989569B2 (en) Unikernel provisioning
US20220261238A1 (en) Method and system for deploying third-party application to microcontroller by means of edge assistance
CN121219677A (zh) 到库变换的眼标注入

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20230126

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20240403

Comment text: Request for Examination of Application

PC1902 Submission of document of abandonment before decision of registration