WO1997023823A2 - Machine code format translation - Google Patents

Machine code format translation Download PDF

Info

Publication number
WO1997023823A2
WO1997023823A2 PCT/IB1996/001331 IB9601331W WO9723823A2 WO 1997023823 A2 WO1997023823 A2 WO 1997023823A2 IB 9601331 W IB9601331 W IB 9601331W WO 9723823 A2 WO9723823 A2 WO 9723823A2
Authority
WO
WIPO (PCT)
Prior art keywords
stream
machine code
pseudo
data
instructions
Prior art date
Application number
PCT/IB1996/001331
Other languages
French (fr)
Other versions
WO1997023823A3 (en
Inventor
Asher John Hoskins
Original Assignee
Philips Electronics N.V.
Philips Norden Ab
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 Philips Electronics N.V., Philips Norden Ab filed Critical Philips Electronics N.V.
Priority to JP9523452A priority Critical patent/JPH11502964A/en
Priority to EP96938415A priority patent/EP0811190A2/en
Publication of WO1997023823A2 publication Critical patent/WO1997023823A2/en
Publication of WO1997023823A3 publication Critical patent/WO1997023823A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary

Definitions

  • a signal processing apparatus operable to receive a data signal comprised of a stream of program data encoded as virtual machine code according to a common data format supported by the apparatus, said apparatus further comprising: data processing means operable to process data encoded as a native machine code of the apparatus; and a translator arranged to receive the said stream of virtual machine code data, to translate it to said native machine code, and pass it to said data processing means, characterised by one or more pseudo-instructions being inserted in the stream, and the apparatus being configured to detect said pseudo-instructions and extract them from the stream, and said translation means being arranged to convert the virtual machine code into native machine code at least partially in response to information contained within said pseudo- instructions.
  • the program data of the data stream may be encoded according to a predetermined coding scheme, such as MPEG for audio and/or video signals, with the data processing means of the said apparatus further comprising a decoder stage arranged to receive and decode the program data stream.
  • a predetermined coding scheme such as MPEG for audio and/or video signals
  • the mode of supply of the program stream may vary (whilst remaining in compliance with the requirements of the common format) such that, for the receiving apparatus, the source of the stream of program data may comprise a removable storage device such as a conventional or high-density optical disc with the apparatus further comprising means operable to access data therefrom.
  • the stream of program data may be supplied to the apparatus from a remote source via a data network, with the apparatus further comprising means for interfacing to such a network.
  • a method for encoding a stream of program data for supply to a signal processing apparatus of the type described as well as a method for signal processing wherein a data signal comprised of a stream of program data encoded as virtual machine code according to a common data format is translated to a native machine code supported by an apparatus receiving the signal, the method being characterised in that, with one or more pseudo-instructions being inserted in the stream, said pseudo-instructions are detected and extracted from the stream, and the step of translation to convert the virtual machine code into native machine code occurs at least partially in response to information contained within the said pseudo-instructions.
  • pseudo-code instructions may vary. Whatever the form, however, they are linked by the feature of improving efficiency of the translation instruction.
  • One or more ofthe pseudo-instructions may indicate the most likely one from a number of possible translation operations to occur subsequently such as to allow at least some of the process of translation to occur predictively rather than reactively, or an instruction may indicate that a given step in the translation is to be performed more than once (e.g. to avoid having to translate the instructions in a loop for every circuit of that loop).
  • pseudo-instructions may indicate that the translation operation for a segment of virtual machine code (as identified by that instruction) is to be optimised for speed at the expense of memory space required by the translated code, or optimised for memory space required by the translated code at the expense of speed of the translation operation.
  • a pseudo-instruction "hint" enables localised optimisation for time- or space- critical segments of code without requiring the translator to be reset on a regular basis.
  • Figure 1 is a block schematic diagram representing an encoder and decoder apparatus embodying the invention.
  • the Figure shows generally at the left-hand side an authoring suite comprising a processor 10, mass data store 12 and user input/output means 14, linked by a suitable bus 16.
  • the authoring suite is used to generate titles conforming to the common format and comprising both an application program and data for use by that program.
  • the application program is in the form of a program for an imaginary virtual machine, the executable application program for which is delivered as one or more modules in the form of the binary representation of the common format (or virtual machine) code, the instruction set for the imaginary machine.
  • the virtual machine is suitably specified as a 32-bit machine with 32 general purpose registers and 32 floating point registers, handling IEEE 32- and 64-bit formats(1 bit sign, 23 bits mantissa, 8 bits exponent, or 1 bit sign, 52 bits mantissa, 11 bits exponent respectively).
  • the medium may comprise a data network or may be in the form of a removable record carrier such as a conventional or high-density optical disc, with the compiler 18 handling any necessary mapping of data blocks required by the particular transport means.
  • the data from the transport and/or storage medium 20 is read to a local buffer memory 22 following which segments of the common format code are translated (at 24) into the instruction set of the consumer player host processor 26.
  • This translation process is carried out as the program code modules are loaded and, because the code is translated rather than interpreted, the translated program will run at essentially full speed with no interruption overhead.
  • the encoder compiler 18 is configured to generate and insert in the common format code stream a number of pseudo- instructions or "hints" which provide guidance to a decoder translator (e.g. 24) aimed at improving the speed or economy of translation to the native code.
  • PUSH_n This tells the translator that n words are going to be pushed onto a stack before the next application programming interface call. This allows processors without in-built stack operations (such as MIPS) to skip updating the stack pointer register after each push operation, they can just use a constant offset and update the register just before the API call. For this instruction to work safely, the assembler must check that there are no labels which may disrupt the sequence of words, and that n is correct.The translator should be able to assume that things are correct.
  • OPTIMISE_SPEED This hint (in the form of a pair of them in _START and _END configurations) surround a section of code that is speed critical: in such a case, the translator is configured to optimise the code as much as possible without taking undue notice of code size (this could include unrolling loops).

Abstract

A method and apparatus are described for generating and distributing program code written initially in terms of a virtual processor (at authoring suite 10-18) and then translated (24) to the native code of a target processor (26) system. In order to improve efficiency, the virtual machine code includes pseudo-instructions generated and inserted in the code stream by the compiler stage (18) of the authoring suite. These pseudo-instructions are not translated to the native code of the target processor but instead provide guidance for the operation of the translation process (24) to improve its efficiency.

Description

format. It is independent of platform characteristics such as processor choice or graphics system architecture, although there will be a minimum base level of capabilities specified by the common format standard below which a platform cannot support the common format. To allow for upgrades and different performance-level models of a manufacturers products, titles written according to the format are scalable which means that they will play on a platform of any level of capability, provided that that platform supports the common format standard. A title must always be capable of running on a player with the base level of capabilities. Where more than base performance is available.then there will often be more application features or a higher level of presentation quality.
Whilst the above techniques allow developers to develop for one platform only and still have their applications run on many platforms, the method of code production does not always result in code that is as fast as the native code on a given platform. This may be due, for example, to differences between the number of registers of the virtual machine and those of the actual machine.
It is accordingly an object of the present invention to improve the efficiency of translation from virtual to native code in such situations, the improvement being in terms of fewer required processing operations to effect the translation and/or the reduction and/or avoidance of the delays associated with translation.
In accordance with the present invention there is provided a signal processing apparatus operable to receive a data signal comprised of a stream of program data encoded as virtual machine code according to a common data format supported by the apparatus, said apparatus further comprising: data processing means operable to process data encoded as a native machine code of the apparatus; and a translator arranged to receive the said stream of virtual machine code data, to translate it to said native machine code, and pass it to said data processing means, characterised by one or more pseudo-instructions being inserted in the stream, and the apparatus being configured to detect said pseudo-instructions and extract them from the stream, and said translation means being arranged to convert the virtual machine code into native machine code at least partially in response to information contained within said pseudo- instructions.
By the inclusion of the pseudo-instructions, which act as "hints" to the translator, a more efficient translation is enabled resulting in closer to native levels of efficiency, that is to say closer to the efficiency which would be expected for code written specifically for that apparatus. The program data of the data stream may be encoded according to a predetermined coding scheme, such as MPEG for audio and/or video signals, with the data processing means of the said apparatus further comprising a decoder stage arranged to receive and decode the program data stream. The mode of supply of the program stream may vary (whilst remaining in compliance with the requirements of the common format) such that, for the receiving apparatus, the source of the stream of program data may comprise a removable storage device such as a conventional or high-density optical disc with the apparatus further comprising means operable to access data therefrom. Alternatively, the stream of program data may be supplied to the apparatus from a remote source via a data network, with the apparatus further comprising means for interfacing to such a network.
Also in accordance with the present invention there is provided a method for encoding a stream of program data for supply to a signal processing apparatus of the type described, as well as a method for signal processing wherein a data signal comprised of a stream of program data encoded as virtual machine code according to a common data format is translated to a native machine code supported by an apparatus receiving the signal, the method being characterised in that, with one or more pseudo-instructions being inserted in the stream, said pseudo-instructions are detected and extracted from the stream, and the step of translation to convert the virtual machine code into native machine code occurs at least partially in response to information contained within the said pseudo-instructions.
The form taken by the pseudo-code instructions may vary. Whatever the form, however, they are linked by the feature of improving efficiency of the translation instruction. One or more ofthe pseudo-instructions may indicate the most likely one from a number of possible translation operations to occur subsequently such as to allow at least some of the process of translation to occur predictively rather than reactively, or an instruction may indicate that a given step in the translation is to be performed more than once (e.g. to avoid having to translate the instructions in a loop for every circuit of that loop). Some of the pseudo-instructions may indicate that the translation operation for a segment of virtual machine code (as identified by that instruction) is to be optimised for speed at the expense of memory space required by the translated code, or optimised for memory space required by the translated code at the expense of speed of the translation operation. Such a pseudo-instruction "hint" enables localised optimisation for time- or space- critical segments of code without requiring the translator to be reset on a regular basis.
Further features and advantages will now be described, by way of example only, with reference to the accompanying drawing (Figure 1 ) which is a block schematic diagram representing an encoder and decoder apparatus embodying the invention.
In the following, describing the application of the invention to a system where data (such as audio and video) is recorded in a common format which is to be subsequently converted to a required machine code form, that form of the code produced in authoring will be referred to as common format code and the form to which it is translated at run time in the apparatus is referred to herein as native code. The Figure shows generally at the left-hand side an authoring suite comprising a processor 10, mass data store 12 and user input/output means 14, linked by a suitable bus 16. The authoring suite is used to generate titles conforming to the common format and comprising both an application program and data for use by that program. The application program is in the form of a program for an imaginary virtual machine, the executable application program for which is delivered as one or more modules in the form of the binary representation of the common format (or virtual machine) code, the instruction set for the imaginary machine. The virtual machine is suitably specified as a 32-bit machine with 32 general purpose registers and 32 floating point registers, handling IEEE 32- and 64-bit formats(1 bit sign, 23 bits mantissa, 8 bits exponent, or 1 bit sign, 52 bits mantissa, 11 bits exponent respectively).
Having been assembled in the common format, a title is then compiled
(at compiler 18) into the particular form required by the transport and/or storage medium 20 of choice. The medium may comprise a data network or may be in the form of a removable record carrier such as a conventional or high-density optical disc, with the compiler 18 handling any necessary mapping of data blocks required by the particular transport means.
At the consumer player end of the system, shown generally at the right- hand side of the Figure, the data from the transport and/or storage medium 20 is read to a local buffer memory 22 following which segments of the common format code are translated (at 24) into the instruction set of the consumer player host processor 26. This translation process is carried out as the program code modules are loaded and, because the code is translated rather than interpreted, the translated program will run at essentially full speed with no interruption overhead. In order to improve the efficiency, the encoder compiler 18 is configured to generate and insert in the common format code stream a number of pseudo- instructions or "hints" which provide guidance to a decoder translator (e.g. 24) aimed at improving the speed or economy of translation to the native code. The following are examples of suitable hints which may be generated by the compiler or, although not shown, inserted by an author: HOW_VITAL This informs the decoder translator stage 24 that a register of the native processor 26 is being heavily used in comparison with other registers, and consequently should remain readily available via one or more registers of the virtual machine until no longer needed. Separate forms of this hint are suitably provided for the fixed and floating point registers.
FINISHED_WITH This follows on from the HOW_VITAL hint and tells the translator that a particular register is no longer being used and need not be maintained in local store. As above, this hint is suitably provided in separate forms for the fixed and floating point registers.
PUSH_n This tells the translator that n words are going to be pushed onto a stack before the next application programming interface call. This allows processors without in-built stack operations (such as MIPS) to skip updating the stack pointer register after each push operation, they can just use a constant offset and update the register just before the API call. For this instruction to work safely, the assembler must check that there are no labels which may disrupt the sequence of words, and that n is correct.The translator should be able to assume that things are correct.
BRANCH JKELY This tells the translator that the conditional branch instruction following this hint is more likely to be taken than not.
BRANCHJJNLIKELY This is the opposite to the BRANCH_LIKELY hint above.
OPTIMISE_SPEED This hint (in the form of a pair of them in _START and _END configurations) surround a section of code that is speed critical: in such a case, the translator is configured to optimise the code as much as possible without taking undue notice of code size (this could include unrolling loops).
OPTIMISE_SPACE This hint (again in the form of a _START and _END pair) surrounds a section of code that is not at all speed critical and indicates to the translator that the code should be optimised to take up as little memory as possible, even if this slows it down a little.
It should be noted that these "hints" do not form a part of the code translated - instead they act to improve the efficiency of the translation process which process is not, in itself, rendered any more complex.
From reading the present disclosure, other modifications will be apparent to persons skilled in the art. Such modifications may involve other features which are already known in the field of data coding and transmission methods and apparatus and component parts thereof and which may be used instead of or in addition to features already described herein. Although claims have been formulated in this application to particular combinations of features, it should be understood that the scope ofthe disclosure of the present application also includes any novel feature or any novel combination of features disclosed herein either explicitly or implicitly, whether or not it relates to the same invention as presently claimed in any claim and whether or not it mitigates any or all of the same technical problems as does the present invention. The applicants hereby give notice that new claims may be formulated to such features and/or combinations of such features during the prosecution of the present application or of any further application derived therefrom.

Claims

1. A signal processing apparatus operable to receive a data signal comprised of a stream of program data encoded as virtual machine code according to a common data format supported by the apparatus, said apparatus comprising: data processing means operable to process data encoded as a native machine code of the apparatus; and a translator arranged to receive the said stream of virtual machine code data, to translate it to said native machine code, and pass it to said data processing means, characterised by one or more pseudo-instructions being inserted in the stream, and the apparatus being configured to detect said pseudo-instructions and extract them from the stream, and said translation means being arranged to convert the virtual machine code into native machine code at least partially in response to information contained within said pseudo- instructions.
2. Apparatus as claimed in Claim 1 , wherein the program data of said data stream is encoded according to a predetermined coding scheme, the data processing means of said apparatus further comprising a decoder stage arranged to receive and decode the program data stream.
3. Apparatus as claimed in Claim 1 or Claim 2, wherein the source of said stream of program data comprises a removable storage device and the apparatus further comprises means operable to access data therefrom.
4. Apparatus as claimed in Claim 1 or Claim 2, wherein said stream of program data is supplied to the apparatus from a remote source via a data network, and the apparatus further comprises means for interfacing to said network.
5. A method of encoding a stream of program data for supply to the signal processing apparatus of Claim 1 , the method comprising encoding the stream as virtual machine code according to said common data format and inserting in the stream said pseudo-instructions governing at least partially the translation of said virtual machine code to said native machine code.
6. A method for signal processing wherein a data signal comprised of a stream of program data encoded as virtual machine code according to a common data format is translated to a native machine code supported by an apparatus receiving the signal, the method being characterised in that, with one or more pseudo-instructions being inserted in the stream, said pseudo- instructions are detected and extracted from the stream, and the step of translation to convert the virtual machine code into native machine code occurs at least partially in response to information contained within the said pseudo- instructions.
7. A method as claimed in Claim 5 or Claim 6, wherein one or more of the pseudo-instructions indicates the most likely one from a number of possible translation operations to occur subsequently.
8. A method as claimed in Claim 5 or Claim 6, wherein one or more of the pseudo-instructions indicates that the translation operation for a segment of virtual machine code identified by the instruction is to be optimised for speed at the expense of memory space required by the translated code.
9. A method as claimed in Claim 5 or Claim 6, wherein one or more of the pseudo-instructions indicates that the translation operation for a segment of virtual machine code identified by the instruction is to be optimised for memory space required by the translated code at the expense of speed of the translation operation. 10
10. A method as claimed in Claim 5 or Claim 6, wherein one or more of the pseudo-instructions indicates that a particular translation operation is to be performed two or more times in succession.
PCT/IB1996/001331 1995-12-21 1996-12-03 Machine code format translation WO1997023823A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9523452A JPH11502964A (en) 1995-12-21 1996-12-03 Machine code format translation
EP96938415A EP0811190A2 (en) 1995-12-21 1996-12-03 Machine code format translation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9526129.3A GB9526129D0 (en) 1995-12-21 1995-12-21 Machine code format translation
GB9526129.3 1995-12-21

Publications (2)

Publication Number Publication Date
WO1997023823A2 true WO1997023823A2 (en) 1997-07-03
WO1997023823A3 WO1997023823A3 (en) 1997-08-28

Family

ID=10785800

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB1996/001331 WO1997023823A2 (en) 1995-12-21 1996-12-03 Machine code format translation

Country Status (6)

Country Link
US (1) US5872978A (en)
EP (1) EP0811190A2 (en)
JP (1) JPH11502964A (en)
GB (1) GB9526129D0 (en)
TW (1) TW315546B (en)
WO (1) WO1997023823A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999018485A2 (en) * 1997-10-02 1999-04-15 Koninklijke Philips Electronics N.V. Variable instruction set computer
WO1999018486A2 (en) * 1997-10-02 1999-04-15 Koninklijke Philips Electronics N.V. Data processing device for processing virtual machine instructions
GB2337434B (en) * 1997-03-14 2002-01-30 Ian Charles Ogilvy Method and apparatus for controlling communications

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69726140T2 (en) * 1997-09-09 2004-08-26 Motorola Semiconducteurs S.A. Method and system for executing instructions in a microprocessor
JP3741870B2 (en) * 1998-08-07 2006-02-01 富士通株式会社 Instruction and data prefetching method, microcontroller, pseudo instruction detection circuit
US7010177B1 (en) * 1998-08-27 2006-03-07 Intel Corporation Portability of digital images
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
EP1149339A1 (en) 1998-12-09 2001-10-31 Network Ice Corporation A method and apparatus for providing network and computer system security
US7346929B1 (en) * 1999-07-29 2008-03-18 International Business Machines Corporation Method and apparatus for auditing network security
US8006243B2 (en) * 1999-12-07 2011-08-23 International Business Machines Corporation Method and apparatus for remote installation of network drivers and software
WO2001065364A1 (en) * 2000-03-02 2001-09-07 Wind River Systems, Inc. System and method for common code generation
IL152502A0 (en) * 2000-04-28 2003-05-29 Internet Security Systems Inc Method and system for managing computer security information
US7574740B1 (en) 2000-04-28 2009-08-11 International Business Machines Corporation Method and system for intrusion detection in a computer network
US7921459B2 (en) 2000-04-28 2011-04-05 International Business Machines Corporation System and method for managing security events on a network
US7162649B1 (en) 2000-06-30 2007-01-09 Internet Security Systems, Inc. Method and apparatus for network assessment and authentication
US7093239B1 (en) 2000-07-14 2006-08-15 Internet Security Systems, Inc. Computer immune system and method for detecting unwanted code in a computer system
JP2004507832A (en) * 2000-08-31 2004-03-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ A system that executes virtual machine instructions
US7178166B1 (en) 2000-09-19 2007-02-13 Internet Security Systems, Inc. Vulnerability assessment and authentication of a computer by a local scanner
US9027121B2 (en) 2000-10-10 2015-05-05 International Business Machines Corporation Method and system for creating a record for one or more computer security incidents
US7146305B2 (en) * 2000-10-24 2006-12-05 Vcis, Inc. Analytical virtual machine
US6996813B1 (en) 2000-10-31 2006-02-07 Sun Microsystems, Inc. Frameworks for loading and execution of object-based programs
US7130466B2 (en) 2000-12-21 2006-10-31 Cobion Ag System and method for compiling images from a database and comparing the compiled images with known images
WO2002062049A2 (en) * 2001-01-31 2002-08-08 Timothy David Dodd Method and system for calculating risk in association with a security audit of a computer network
US20020111829A1 (en) * 2001-02-09 2002-08-15 Kenneth Robibero Method and associated apparatus for electronic prescription handling
US7020874B2 (en) * 2001-03-26 2006-03-28 Sun Microsystems, Inc. Techniques for loading class files into virtual machines
US7096466B2 (en) 2001-03-26 2006-08-22 Sun Microsystems, Inc. Loading attribute for partial loading of class files into virtual machines
US7543288B2 (en) 2001-03-27 2009-06-02 Sun Microsystems, Inc. Reduced instruction set for Java virtual machines
US6957428B2 (en) 2001-03-27 2005-10-18 Sun Microsystems, Inc. Enhanced virtual machine instructions
US7237264B1 (en) 2001-06-04 2007-06-26 Internet Security Systems, Inc. System and method for preventing network misuse
US7657419B2 (en) * 2001-06-19 2010-02-02 International Business Machines Corporation Analytical virtual machine
US7228533B2 (en) * 2001-08-24 2007-06-05 Sun Microsystems, Inc. Frameworks for generation of Java macro instructions for performing programming loops
US7058934B2 (en) 2001-08-24 2006-06-06 Sun Microsystems, Inc. Frameworks for generation of Java macro instructions for instantiating Java objects
US6988261B2 (en) * 2001-08-24 2006-01-17 Sun Microsystems, Inc. Frameworks for generation of Java macro instructions in Java computing environments
US7039904B2 (en) * 2001-08-24 2006-05-02 Sun Microsystems, Inc. Frameworks for generation of Java macro instructions for storing values into local variables
US6976254B2 (en) * 2001-11-28 2005-12-13 Esmertec Ag Inter-method control transfer for execution engines with memory constraints
WO2003058451A1 (en) 2002-01-04 2003-07-17 Internet Security Systems, Inc. System and method for the managed security control of processes on a computer system
US7370360B2 (en) * 2002-05-13 2008-05-06 International Business Machines Corporation Computer immune system and method for detecting unwanted code in a P-code or partially compiled native-code program executing within a virtual machine
US7913303B1 (en) 2003-01-21 2011-03-22 International Business Machines Corporation Method and system for dynamically protecting a computer system from attack
US7657938B2 (en) * 2003-10-28 2010-02-02 International Business Machines Corporation Method and system for protecting computer networks by altering unwanted network data traffic
US8141066B2 (en) * 2007-01-12 2012-03-20 Hewlett-Packard Development Company, L.P. Cross-platform architecture for replicating profiling scheme in a computer system
US8719936B2 (en) * 2008-02-01 2014-05-06 Northeastern University VMM-based intrusion detection system
US8769514B2 (en) * 2008-06-27 2014-07-01 Microsoft Corporation Detecting race conditions with a software transactional memory system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0464526A2 (en) * 1990-06-25 1992-01-08 Hewlett-Packard Company Architecture neutral distribution format (ANDF) installer using a compiler intermediate language
EP0510616A2 (en) * 1991-04-23 1992-10-28 Hitachi, Ltd. Retargetable information processing system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586328A (en) * 1994-10-21 1996-12-17 Microsoft Corporation Module dependency based incremental compiler and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0464526A2 (en) * 1990-06-25 1992-01-08 Hewlett-Packard Company Architecture neutral distribution format (ANDF) installer using a compiler intermediate language
EP0510616A2 (en) * 1991-04-23 1992-10-28 Hitachi, Ltd. Retargetable information processing system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM TECHNICAL DISCLOSURE BULLETIN, Volume 21, No. 7, December 1978, J.K. ALLSEN et al., "Centralized Code Generation Services". *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2337434B (en) * 1997-03-14 2002-01-30 Ian Charles Ogilvy Method and apparatus for controlling communications
WO1999018485A2 (en) * 1997-10-02 1999-04-15 Koninklijke Philips Electronics N.V. Variable instruction set computer
WO1999018486A2 (en) * 1997-10-02 1999-04-15 Koninklijke Philips Electronics N.V. Data processing device for processing virtual machine instructions
WO1999018486A3 (en) * 1997-10-02 1999-06-24 Koninkl Philips Electronics Nv Data processing device for processing virtual machine instructions
WO1999018485A3 (en) * 1997-10-02 1999-07-01 Koninkl Philips Electronics Nv Variable instruction set computer
US6292883B1 (en) 1997-10-02 2001-09-18 U.S. Philips Corporation Converting program-specific virtual machine instructions into variable instruction set
US6298434B1 (en) 1997-10-02 2001-10-02 U.S. Philips Corporation Data processing device for processing virtual machine instructions

Also Published As

Publication number Publication date
WO1997023823A3 (en) 1997-08-28
US5872978A (en) 1999-02-16
GB9526129D0 (en) 1996-02-21
TW315546B (en) 1997-09-11
JPH11502964A (en) 1999-03-09
EP0811190A2 (en) 1997-12-10

Similar Documents

Publication Publication Date Title
US5872978A (en) Method and apparatus for improved translation of program data into machine code format
KR100962746B1 (en) Method and apparatus for implementing a bi-endian capable compiler
US6438745B1 (en) Program conversion apparatus
US6976245B2 (en) Processor for executing instructions in units that are unrelated to the units in which instructions are read, and a compiler, an optimization apparatus, an assembler, a linker, a debugger and a disassembler for such processor
US5432937A (en) Method and apparatus for architecture independent executable files
US6662361B1 (en) Method, system, program, and data structures for transforming an instruction in a first bit architecture to an instruction in a second bit architecture
US20080184213A1 (en) Compiler device, method, program and recording medium
US20070113052A1 (en) Method for compressing instruction codes
US7003651B2 (en) Program counter (PC) relative addressing mode with fast displacement
US6314564B1 (en) Method for resolving arbitrarily complex expressions at link-time
US7219336B2 (en) Tracking format of registers having multiple content formats in binary translation
US7127711B2 (en) Forming an executable program
US8589303B2 (en) Asset management apparatus and asset management method
US7941638B2 (en) Facilitating fast scanning for control transfer instructions in an instruction fetch unit
US20060288338A1 (en) Offset threaded code
JP2001297068A (en) Parallel program generating method and its recording medium
US9928045B2 (en) Information processing apparatus, compile method and non-transitory recording medium storing compile program
US20100115498A1 (en) Adaptive production of assembler
JPH11212804A (en) Virtual machine and program converting device
JPH05173800A (en) Constant arranging method for program conversion
US7340592B1 (en) Executing a translated block of instructions and branching to correction code when expected top of stack does not match actual top of stack to adjust stack at execution time to continue executing without restarting translating
JPH05265755A (en) Parallel instruction executing system
GB2302749A (en) Complex and elementary integer operations
JPS6036614B2 (en) information processing equipment
CONNOR " La primera versión de'La vida es sueño', de Calderón", ed. by JM Ruano de la Haza (Book Review)

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): CN JP KR SG

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

WWE Wipo information: entry into national phase

Ref document number: 1996938415

Country of ref document: EP

ENP Entry into the national phase

Ref country code: JP

Ref document number: 1997 523452

Kind code of ref document: A

Format of ref document f/p: F

AK Designated states

Kind code of ref document: A3

Designated state(s): CN JP KR SG

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 1996938415

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1996938415

Country of ref document: EP