CA2093451A1 - Method and Mechanism for Calling 32-Bit Functions from 16-Bit Functions - Google Patents

Method and Mechanism for Calling 32-Bit Functions from 16-Bit Functions

Info

Publication number
CA2093451A1
CA2093451A1 CA2093451A CA2093451A CA2093451A1 CA 2093451 A1 CA2093451 A1 CA 2093451A1 CA 2093451 A CA2093451 A CA 2093451A CA 2093451 A CA2093451 A CA 2093451A CA 2093451 A1 CA2093451 A1 CA 2093451A1
Authority
CA
Canada
Prior art keywords
bit
code
bit functions
calling
function
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
CA2093451A
Other languages
French (fr)
Other versions
CA2093451C (en
Inventor
David M. Mooney
Kevin Alexander Stoodley
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 CA002093451A priority Critical patent/CA2093451C/en
Priority to US08/301,221 priority patent/US5490256A/en
Publication of CA2093451A1 publication Critical patent/CA2093451A1/en
Application granted granted Critical
Publication of CA2093451C publication Critical patent/CA2093451C/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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Abstract

In the field of mixed 16-bit and 32-bit code, a method and mechanism are provided to implement alterations in the dynamic portion of memory containing the data objects used by code in the 16-bit environment so that such data is accessible to code from the 32-bit environment. The code necessary to implement the method is generated automatically by an enhanced compiler on identifying a 16-bit linkage in the 32-bit code. Once the data objects in the stack are accesible to the 32-bit code, a function in the 16-bit code can successfully call a function in 32-bit code.
CA002093451A 1993-04-06 1993-04-06 Method and mechanism for calling 32-bit functions from 16-bit functions Expired - Fee Related CA2093451C (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CA002093451A CA2093451C (en) 1993-04-06 1993-04-06 Method and mechanism for calling 32-bit functions from 16-bit functions
US08/301,221 US5490256A (en) 1993-04-06 1994-09-06 Method and mechanism for calling 32-bit functions from 16-bit functions

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002093451A CA2093451C (en) 1993-04-06 1993-04-06 Method and mechanism for calling 32-bit functions from 16-bit functions
US08/301,221 US5490256A (en) 1993-04-06 1994-09-06 Method and mechanism for calling 32-bit functions from 16-bit functions

Publications (2)

Publication Number Publication Date
CA2093451A1 true CA2093451A1 (en) 1994-10-07
CA2093451C CA2093451C (en) 2000-03-14

Family

ID=25676060

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002093451A Expired - Fee Related CA2093451C (en) 1993-04-06 1993-04-06 Method and mechanism for calling 32-bit functions from 16-bit functions

Country Status (2)

Country Link
US (1) US5490256A (en)
CA (1) CA2093451C (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1248193A1 (en) * 2001-04-02 2002-10-09 Hewlett-Packard Company Initialisation module for a device driver
EP2669797A3 (en) * 2012-05-30 2014-04-09 Vector Fabrics B.V. Method and system for translating a function into non-native instructions

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249818B1 (en) * 1993-06-30 2001-06-19 Compaq Computer Corporation Network transport driver interfacing
US6148325A (en) * 1994-06-30 2000-11-14 Microsoft Corporation Method and system for protecting shared code and data in a multitasking operating system
US6363409B1 (en) 1995-04-24 2002-03-26 Microsoft Corporation Automatic client/server translation and execution of non-native applications
JP3201716B2 (en) * 1996-02-22 2001-08-27 シャープ株式会社 Computer equipment
US5903755A (en) * 1996-03-15 1999-05-11 Novell, Inc. Method and system for interenvironment object control
US5838911A (en) * 1996-05-23 1998-11-17 Electronic Data Systems Corporation Method and apparatus for obtaining network information by using a dynamic link library
US5835958A (en) * 1996-10-29 1998-11-10 Sun Microsystems, Inc. Method and apparatus for dynamically sizing non-contiguous runtime stacks
US5854939A (en) * 1996-11-07 1998-12-29 Atmel Corporation Eight-bit microcontroller having a risc architecture
US5898885A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native stack-based instruction within a computer system
US5898850A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native mode-sensitive instruction within a computer system
US5875336A (en) * 1997-03-31 1999-02-23 International Business Machines Corporation Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system
US6021438A (en) * 1997-06-18 2000-02-01 Wyatt River Software, Inc. License management system using daemons and aliasing
CA2211515C (en) * 1997-07-25 2001-12-11 Kevin Alexander Stoodley System and method of local data alignment for stack memory
US6111877A (en) 1997-12-31 2000-08-29 Cisco Technology, Inc. Load sharing across flows
US6826749B2 (en) 1998-12-08 2004-11-30 Nazomi Communications, Inc. Java hardware accelerator using thread manager
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US6332215B1 (en) 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US7225436B1 (en) 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US6850990B1 (en) * 1999-07-14 2005-02-01 Landesk Software Limited Transfer of synchronized data from 16-bit code to a 32-bit process
FR2797962B1 (en) * 1999-08-23 2001-10-26 Trusted Logic METHOD FOR CONVERTING TYPES OF ENCODED VARIABLES IN A COMPUTER PROGRAM AND CORRESPONDING COMPUTER PROGRAM TRANSLATION SYSTEM
KR20020028814A (en) * 2000-10-10 2002-04-17 나조미 커뮤니케이션즈, 인코포레이티드 Java hardware accelerator using microcode engine
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
US7032230B2 (en) * 2001-08-27 2006-04-18 International Business Machines Corporation Efficient virtual function calls for compiled/interpreted environments
US9110672B2 (en) 2013-11-07 2015-08-18 International Business Machines Corporation Compiler generation of thunking code
US11249760B2 (en) 2019-04-10 2022-02-15 International Business Machines Corporation Parameter management between programs
US11500653B2 (en) 2020-02-05 2022-11-15 International Business Machines Corporation Signal handling between programs associated with different addressing modes
US11294695B2 (en) 2020-05-28 2022-04-05 International Business Machines Corporation Termination of programs associated with different addressing modes
US11947993B2 (en) 2021-06-22 2024-04-02 International Business Machines Corporation Cooperative input/output of address modes for interoperating programs

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253425A5 (en) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4445173A (en) * 1981-09-11 1984-04-24 Data General Corporation Improved system for saving and restoring state in call and return operations
US4569018A (en) * 1982-11-15 1986-02-04 Data General Corp. Digital data processing system having dual-purpose scratchpad and address translation memory
US4928237A (en) * 1987-03-27 1990-05-22 International Business Machines Corp. Computer system having mode independent addressing
US5127103A (en) * 1987-10-14 1992-06-30 North American Philips Corporation Real-time tracing of dynamic local data in high level languages in the presence of process context switches
US5097533A (en) * 1988-11-29 1992-03-17 International Business Machines Corporation System and method for interfacing computer application programs written in different languages to a software system
US5146593A (en) * 1989-03-06 1992-09-08 International Business Machines Corporation Procedure call interface
US5144551A (en) * 1989-05-19 1992-09-01 Compaq Computer Corporation Computer memory management method utilizing segmentation and protection techniques
FR2652926B1 (en) * 1989-10-06 1994-07-08 Bull Sa METHOD FOR OPERATING THE MEMORY IN A VIRTUAL ADDRESSING COMPUTER SYSTEM AND DEVICE FOR CARRYING OUT SAID METHOD.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1248193A1 (en) * 2001-04-02 2002-10-09 Hewlett-Packard Company Initialisation module for a device driver
EP2669797A3 (en) * 2012-05-30 2014-04-09 Vector Fabrics B.V. Method and system for translating a function into non-native instructions

Also Published As

Publication number Publication date
US5490256A (en) 1996-02-06
CA2093451C (en) 2000-03-14

Similar Documents

Publication Publication Date Title
CA2093451A1 (en) Method and Mechanism for Calling 32-Bit Functions from 16-Bit Functions
CA2145844A1 (en) A System for Operating Application Software in a Safety Critical Environment
CA2093815A1 (en) Method and apparatus for providing down-loaded instructions for execution by a peripheral controller
CA2284250A1 (en) Computer method for implementing a get instruction
CA2061117A1 (en) Apparatus and method for distributed program stack
EP1416374A3 (en) Program converting unit and processor improved in address management
MY116751A (en) Processor for executing highly efficient vliw
WO1994023363A3 (en) Loader system
CA2149870A1 (en) Object-oriented host system
GR3032498T3 (en) System for dynamic run-time binding of software modules in a computer system.
EP0622847A3 (en) Three dimensional package and architecture for high performance computer.
EP1307023A3 (en) A distributed computer system
EP0645701A3 (en) Emulating the memory functions of a first system on a second system.
CA2245611A1 (en) Method and apparatus for efficient operations on primary type values without static overloading
EP0588083A3 (en) Portable computer system.
CA2152041A1 (en) An Apparatus for Executing a Plurality of Program Segments Having Different Object Code Types in a Single Program or Processor Environment
CA2143672A1 (en) System and method for distributed computation based upon movement, execution and interaction of processes in a network
CA2135518A1 (en) Load System
AU1406195A (en) Metal ion-ligand coordination complexes, antibodies directed thereto, and assays using such antibodies
EP0664483A3 (en) Film processing system.
FR2700193B1 (en) METAL SEALING DEVICE.
CA2162128A1 (en) Quaternary ammonium and waterproofing/preservative compositions
TW349185B (en) A semiconductor device
FR2710781B1 (en) Field emission cathode device.
AU6117694A (en) Telelphone dialling code processor

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed