JP3606561B2 - 第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャの命令に変換する方法、システム、プログラムおよびデータ構造 - Google Patents
第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャの命令に変換する方法、システム、プログラムおよびデータ構造 Download PDFInfo
- Publication number
- JP3606561B2 JP3606561B2 JP2001003173A JP2001003173A JP3606561B2 JP 3606561 B2 JP3606561 B2 JP 3606561B2 JP 2001003173 A JP2001003173 A JP 2001003173A JP 2001003173 A JP2001003173 A JP 2001003173A JP 3606561 B2 JP3606561 B2 JP 3606561B2
- Authority
- JP
- Japan
- Prior art keywords
- bit architecture
- instruction
- operand
- conversion
- bit
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 37
- 238000006243 chemical reaction Methods 0.000 claims description 161
- 238000012545 processing Methods 0.000 claims description 21
- 230000008859 change Effects 0.000 claims description 14
- 230000009466 transformation Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000001343 mnemonic effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000006467 substitution reaction Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000000969 carrier Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータ用の第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャの命令に変換する方法、システム、プログラムおよびデータ構造に関し、特にコンパイラに関する。
【0002】
【従来の技術】
32ビット・アーキテクチャを使用したコンピュータ用に多くの適用業務プログラムが書かれている。しかし、大規模な処理システムは、64ビット・アーキテクチャを利用し始めている。64ビットのコンピューティング・アーキテクチャでは、使用可能なアドレス空間、レジスタ・サイズ、およびデータ構造サイズが大幅に増大する。さらに、64ビット・コンピューティングは、32ビット・コンピューティングよりはるかに速い処理およびデータ転送を提供する。たとえば、1つの64ビット命令は、32ビットであればいくつもの命令を必要とする操作に加えて「終結処理」コードを処理することができる。64ビット・システムは、複合した指標付けまたはレジスタ・アドレス方式を使用せずにより多くのメモリを直接アドレス指定することができる。現行の64ビット・コンピュータには、Sun Microsystems(サン・マイクロシステムズ)社のSolaris 7操作環境(SolarisはSun Microsystemsの商標)、Compaq Computer(コンパック・コンピュータ)社のAlphaStation 200、ならびにDigital Equipment(デジタル・エクイップメント)社の開発したAlpha64ビット・プロセッサを使用する他のCompaq製品、およびIntelが推進する64ビット・アーキテクチャであるIA−64アーキテクチャに基づくIntel(インテル)社のMercedプロセッサおよびItaniumプロセッサ(ItaniumはIntel社の商標、MercedおよびIA−64は、Intel社のコード名)が含まれる。
【0003】
【発明が解決しようとする課題】
64ビット・コンピューティングに利点があるにもかかわらず、多くのプログラムがいまだに32ビット命令を使って書かれている。したがって、コンパイラ開発者は、業界が64ビット・アーキテクチャのコンピュータに移行しても32ビットのプログラムをサポートし続けなければならない。既存のアーキテクチャおよびコンパイラとの互換性を維持するには(つまり、プログラマに複雑さを意識させないためには)、コンパイラ開発者は、いつ、どこで64ビットの機能を使用するかについて有効な情報を組み込む必要がある。すなわち、当技術分野では、32ビット・アーキテクチャと64ビット・アーキテクチャとの間の移行をサポートするために32ビットおよび64ビットのコンピューティングを扱うことのできるコンパイラの開発が必要とされている。
【0004】
【課題を解決するための手段】
従来技術における上記の制限を克服するために、好ましい実施形態は、第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャの命令に変換するための方法、システム、プログラム、およびデータ構造を開示する。命令コードと少なくとも1つのオペランドを有する第1ビット・アーキテクチャの命令からコードを変換する。第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するための情報を含む変換表にアクセスする。変換表に第1ビット・アーキテクチャの命令を変更するよう指示する情報が含まれている場合、第1ビット・アーキテクチャの命令を対応する第2ビット・アーキテクチャの命令に変換する。この変換は、第1ビット・アーキテクチャの命令を変更して第2ビット・アーキテクチャの命令を生成する変換操作に基づいて行われる。
【0005】
第1ビット・アーキテクチャは32ビットのアーキテクチャとし、第2ビット・アーキテクチャは64ビットのアーキテクチャとすることができる。
【0006】
さらなる実施形態では、変換表は、命令コードごとに1エントリを含む。変換を実行すべき場合は、各命令コードのエントリはオペランド表を指すポインタを含むことができる。命令コードのエントリが1つのオペランド表を指すポインタを含まない場合、変換は実行されない。
【0007】
オペランド表は、オペランド・ビット・アーキテクチャ・タイプの可能な各組合せのエントリを含む。オペランド表の各エントリは、少なくとも1つの変換操作を示す。このような場合、命令を変換するには、第1ビット・アーキテクチャの命令中の各オペランドのビット・アーキテクチャ・タイプに一致するオペランド・ビット・アーキテクチャ・タイプを有するオペランド表の1つのエントリを決定する必要がある。次いで、第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するため、少なくとも1つの変換操作が実行される。
【0008】
好ましい実施形態は、あるアーキテクチャから別のアーキテクチャに、たとえば32ビットから64ビットに命令を変換するための技法を提供する。好ましい実施形態の技法を使用すると、たとえば中間コードのようなコードを32ビット命令に変換するコンパイラを変更する必要はない。その代わりに、結果として得られる32ビット命令を、各命令コード・タイプに対する変換操作を提供する様々な表を使用して処理する。好ましい実施形態は、32ビット命令とデータを使用して原始プログラムを書き、それでもマシン上でそのプログラムが動作できるように32ビットと64ビット・アーキテクチャの両方をサポートしようとするマシンには、特に有用である。
【0009】
【発明の実施の形態】
以下の説明では、本明細書の一部であり、本発明のいくつかの実施形態を図示する添付の図面を参照する。本発明の範囲から逸脱することなく、他の実施形態も使用でき、構造上および操作上の変更が行えることを理解されたい。
【0010】
図1は、コンパイラ2の一般的構成要素を示す。コンパイラ2は、高水準原始言語で書かれた原始プログラム4を入力として受け取る。フロント・エンド処理6は、原始プログラム4を走査し、構文解析し、中間コード8に現われる名前の値が、目的マシンが直接処理することができる数量、たとえばビット、整数、実数、ポインタによって表せる、詳細な中間表示8に翻訳することによって、原始プログラム4を中間コード8に変換する。コード生成器10は、中間コード8を入力として受け取り、絶対機械言語、再配置可能機械言語、またはアセンブラ言語を含むことのできる目的プログラム12を出力として生成する。
【0011】
目的プログラム12は、目的コンピュータ14上で稼働するためのものである。好ましい実施形態では、目的コンピュータ14は32ビットおよび64ビットの両方の命令を処理することができる。たとえば、目的コンピュータは、32ビットおよび64ビット命令セットの両方をサポートするIntel IA−64アーキテクチャを実装することができる。Intel IA−64プロセッサは、32ビットの適用業務を、32ビットの適用業務の実行をサポートする64ビットのオペレーティング・システム上で実行することができる。Intel IA−64アーキテクチャは、さらに32ビットと64ビットの混合コードを実行することもできる。Intel IA−64アーキテクチャの詳細は、参照により本明細書に組み込む、Intel社発行の、「IA−64 Application Developer’s Architecture Guide」注文番号245188−011(Intel社1999年5月刊)に説明がある。
【0012】
図2は、好ましい実施形態による32ビット命令を64ビット命令に変換するコード生成器10の構成要素を示す。ステートメント処理モジュール20は、中間コード8を入力として受け取り、32ビット命令22を生成する。32ビット命令を変換器24に入力し、次いで、コンパイラ辞書28、命令変換表30、変換オペランド表32、および置換表34を使用して、32ビット命令を64ビット命令26に変換する。これらの表28、30、32、34は、変換器24が32ビットから64ビットへの変換を実行するために必要とする情報を提供する。コンパイラ辞書28は、32ビット命令からアセンブルされ、命令のオペランド特性とデータ・フィールドを含むその命令に関する情報を含む。たとえば、代表的な命令は下記の形式であり、
op オペランド1、オペランド2
ここで「op」は操作のタイプを示す命令コードであり、オペランド1およびオペランド2はその操作(op)を受けるデータである。たとえば、オペランド1は操作を受ける原始データとすることができ、オペランド2は操作の結果を含む宛先とすることができる。オペランド1および2は両方とも、メモリのレジスタなどアドレス指定可能な記憶場所である。コンパイラ辞書28は、特定のレジスタにあるデータ(オペランド)が32ビットか64ビットか、データ・フィールドのサイズなどを含め、原始プログラム4で定義され使用されるすべてのデータの特性に関する情報を含む。
【0013】
命令変換表30は、各操作のタイプ、つまり各命令コードに対するエントリを含む。命令変換表30のエントリに特定の命令コードをマップするためのインデックスを設けることができる。好ましい実施形態では、命令変換表30は、ゼロまたは1つのアドレスを含むポインタの配列を含む。命令が変換すべきでない場合は、命令変換表30の対応するエントリはゼロにセットされる。反対に、命令を変換すべき場合は、命令変換表30のエントリは1つの変換オペランド表32に対するアドレスを含む。好ましい実施形態では、非ゼロ値を有する命令変換表30の各エントリごとに、つまり変換を受ける各操作ごとに1つの変換オペランド表32がある。
【0014】
変換オペランド表32は、命令タイプに対するオペランド値の可能な各組合せに対するエントリを含む。たとえば、レジスタからメモリにデータを転送するSTORE命令用の変換オペランド表32は、オペランド1および2の各オペランドを32ビットまたは64ビットにすることができる。このような場合、STORE命令用の変換オペランド表32は、下記オペランドのアーキテクチャ・タイプの可能な各組合せごとに4つのエントリを有することになる。
【0015】
1つの変換オペランド表32の各エントリごとに、つまりオペランド値の可能な組合せごとに、その特定のオペランド・アーキテクチャの組合せに対する変換を実施する方法に関する情報を提供する置換表34がある。たとえば、上記STORE命令に対するオペランド・アーキテクチャ・タイプの4つの可能な組合せごとに様々な変換を実行することができる。各置換表34は、変換の実施方法、つまり変換操作について変換器24に命令するフィールドを含むことになる。好ましい実施形態では、置換表34は、新しい変換opコードまたは変換される命令コードの代わりに使用する命令を指示するフィールドと、レジスタが32ビットと64ビットのデータのどちらを有するかを示すようにレジスタ状態表を更新するか、またはレジスタ状態を不変に保つかを指示するフラグを含む。このレジスタ状態表は、コンパイラ制御構造の一部とすることも、またコンパイラ辞書28に保持することもできる。入力32ビット命令22の32ビットから64ビットへの変換を完了するために引き続き実行される変換段階を指示する他のフラグも提供することができる。
【0016】
変換の一部として、opコードの名前の変更を含めることができる。たとえば、32ビット命令は、格納(store)にST、ロード(load)にLなどニーモニック形式を有することができ、64ビット命令では少々異なり、格納(store)にSTG、ロード(load)にLGとなる。「G」ニーモニックは、命令が少なくとも1つの64ビット・オペランドを含むことを示す。代替実施形態では、32ビット命令と64ビット命令を区別するために他のニーモニックを使用することができる。
【0017】
図3は、コード生成器10の変換器24構成要素内で実装される、表28、30、32、34を使用して32ビット命令を64ビット命令に変換するための論理を示す。ブロック100で制御が開始し、変換器24がステートメント処理モジュール20から生成された32ビット命令を受け取る。変換器24は、(ブロック102で)受け取った命令のopコードについて命令変換表30のエントリをルックアップする。先に論じたようにこのルックアップ操作は、インデックスを使って特定のopコードに対応するエントリの位置を突き止めることを必要とすることがある。ルックアップしたエントリの値が(ブロック104で)ゼロの場合、ゼロは特定のopコードに対して変換処理が実行されないことを示すので、変換処理は(ブロック106で)終了する。そうでない場合は、そのエントリの値は変換オペランド表32を指すポインタである。変換器24は、(ブロック108で)エントリのポインタによってアドレスされる変換オペランド表32にアクセスする。変換器24はまた、各オペランドが32ビット・データか64ビット・データかなど、コンパイラ辞書28から受け取った命令のオペランドに対する特性を(ブロック110で)決定する。
【0018】
変換器24は、次いで(ブロック112で)変換オペランド表32のエントリをループして、受け取った命令のオペランドの特性に一致するオペランド特性を有するエントリの位置を突き止める。たとえば、受け取った命令のオペランドがそれぞれ32ビットおよび64ビットの場合、それらのオペランド・ビット・アーキテクチャ値に対する指定された変換オペランド表32のエントリが選択される。上記STORE命令に対するエントリの例では、このエントリは上記にリストされる第3のエントリを含むことによる。変換器24は、次いで(ブロック114で)変換オペランド表32で位置を突き止めたエントリにリストされた置換表34にアクセスする。変換器24は、次いで(ブロック116で)受け取った命令のopコードを、置換表34にリストされる1つまたは複数の置換opコードで置換し、それによって32ビット命令を64ビット命令26に変換する。ブロック118で、変換器24は、置換表34で指示される変換の結果として新しい32ビットまたは64ビット状態を指示するようにレジスタ状態表を更新する。たとえば、変換済みの受け取った32ビット命令のどのオペランドも、変換後は64ビット値を有することになる。このような場合、以前には32ビットであったオペランドのレジスタ状況が、現在は64ビットのオペランドであることを反映するように更新される。
【0019】
図4は、STORE命令に対して置換が行われる方法を示す。表150の各エントリは、STORE命令に対する変換オペランド表32のエントリを形成する。32ビット命令22のオペランド値に一致するオペランド1および2に対するオペランド値を有するエントリを発見すると、表150は、新しい単数または複数の命令およびレジスタ状態表が更新されるかどうかを含めて変換操作をリストする。したがって、表150は、可能なオペランド値の各組合せに対する置換表と変換オペランド表のエントリを結合する。表150の第3および第4のエントリは、変換前にはオペランド1が32ビットであったので、レジスタ1状況フラグが更新されたことを示す。新しい命令の「G」ニーモニックは、その命令が64ビット命令であることを示す。さらに、表150では、32ビットのオペランド1を有する32ビットのSTORE命令は、2つの64ビット命令に変換される。
【0020】
同様に、32ビット命令2つごとに変換オペランド表および置換エントリまたは置換表がある。好ましい実施形態では、ADD、SUBTRACT、MULTIPLY、DIVIDE、COMPARE、AND、OR、およびEXCLUSIVE ORなど多くの命令について、1つのオペランドが64ビットであるときは必ず、置換表34は、変換器24に他のオペランドを64ビットに変換するよう命令するための変換操作を含む。ただし、ユーザによりレジスタが32ビットとして宣言されている場合、変換器24は、そのようなレジスタを64ビットに変換するよう命令されることはない。32ビット命令を64ビット命令に変換する方法に関する変換器24へのさらなる命令は、置換表34に符号化されることになる。
【0021】
好ましい実施形態は、32ビット命令を64ビットに変換するための方法、システム、およびプログラムを提供する。好ましい実施形態の技法の利点の1つは、中間コードから32ビット命令を生成する実際のステートメント処理モジュール20を、変換を実現するために変更する必要がないことである。その代わりに、32ビット命令を64ビット命令に変換する追加段階を実行するために、個別の表28、30、32、34ならびに変換器24の構成要素が追加される。このようにして、ステートメント処理モジュール20に対するコンパイラ・コードを変更する必要がなく、現行のコンパイラを使用して初期32ビット命令が生成される。コンパイラ開発者は、最終変換を実行するために、中間コードを32ビット命令に変換するコード生成部分を変更または撹乱する必要はなく、表および変換器24論理を追加するだけでよい。したがって、好ましい実施形態は、64ビット命令でのみ動作する目的コンピュータ、または32ビットと64ビットの両方の命令を処理することのできるIntel IA−64のアーキテクチャを使用したシステムなどのコンピュータ用の、32ビット命令を64ビットに変換する技法を提供する。
【0022】
代替実施形態および結論
これで、本発明の好ましい実施形態の説明を締めくくることにする。下記に、本発明を実施するためのいくつかの代替実施形態を説明する。
【0023】
好ましい実施形態は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せを生成するため、標準のプログラミングまたはエンジニアリングあるいはその両方の技法を使用して、方法、装置、または製造品として実装することができる。本明細書で使用する「製造品」(または「コンピュータ・プログラム製品」)という言葉は、1つまたは複数のコンピュータ可読装置、キャリア、または磁気記憶媒体、「フロッピィ・ディスク」、CD−ROM、光ディスク、ホログラフィック・ユニット、揮発性または非揮発性電子メモリ、ネットワーク伝送回線を介してプログラムへのアクセスを提供するファイル・サーバ、無線伝送媒体、空間を伝播する信号などの媒体からアクセス可能な、1つまたは複数のコンピュータ・プログラムまたはデータ・ファイルあるいはその両方を含む。もちろん、当分野の技術者は、本発明の範囲から逸脱することなく、この構成に多くの変更が行えることを理解されよう。
【0024】
好ましい実施形態を、32ビット命令から64ビット命令への変換に関して説明してきた。しかし、好ましい実施形態の表および変換方法は、8から16、16から32など32ビットおよび64ビット以外のどの命令フォーマットおよびビット・アーキテクチャにも、またはまだ開発されていないアーキテクチャの変換にも適用することができる。これが可能なのは、好ましい実施形態の技法が、現行のコンパイル技法を使用して初期命令を第1ビット形式アーキテクチャにコンパイルし、次いで表と変換器を使用して第1ビット・アーキテクチャの命令を第2ビット形式のアーキテクチャに変換するからである。さらに、たとえば64ビットなどより大きなビット・アーキテクチャからたとえば32ビットなどより小さなビット・アーキテクチャへの変換を行うことができる。
【0025】
好ましい実施形態では、コンパイラ辞書、命令変換表、変換オペランド表、および置換表を別々の表として記述する。しかし、代替実施形態では、記述された別々の表にあるデータを、1つまたは複数の表に合体させることもできる。
【0026】
要約すると、本発明は、第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャの命令に変換するための方法、システム、プログラム、およびデータ構造を提供する。命令コードおよび少なくとも1つのオペランドを有する第1ビット・アーキテクチャの命令からコードが変換される。第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するための情報を含む変換表がアクセスされる。変換表が第1ビット・アーキテクチャの命令を変更するよう指示する情報を含む場合、第1ビット・アーキテクチャの命令は、第2ビット・アーキテクチャの対応する命令に変換される。この変換は、第1ビット・アーキテクチャの命令を変更して第2ビット・アーキテクチャの命令を生成する変換操作に基づいて行われる。
【0027】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0028】
(1)第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャの命令に変換する方法であって、
命令コードおよび少なくとも1つのオペランドを有する第1ビット・アーキテクチャの命令にコードを変換するステップと、
第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するための情報を含む変換表にアクセスするステップと、
変換表が第1ビット・アーキテクチャの命令を変更するよう指示する情報を含む場合に、第1ビット・アーキテクチャの命令を対応する第2ビット・アーキテクチャの命令に変換するステップとを含み、前記変換が第1ビット・アーキテクチャの命令を変更して第2ビット・アーキテクチャの命令を生成する変換操作に基づいて行われる方法。
(2)変換表が、各命令コードごとに1つのエントリを含み、変換を実行すべき場合には、各命令コードのエントリがオペランド表を指すポインタを含むことができ、命令コードのエントリが1つのオペランド表を指すポインタを含まない場合には、変換が実行されない、上記(1)に記載の方法。
(3)オペランド表が、オペランド・ビット・アーキテクチャ・タイプの可能な各組合せのエントリを含み、オペランド表の各エントリが少なくとも1つの変換操作を示し、命令を変換するステップが、
第1ビット・アーキテクチャの命令中の各オペランドのビット・アーキテクチャ・タイプに一致するオペランド・ビット・アーキテクチャ・タイプを有するオペランド表の1つのエントリを決定するステップと、
第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するために少なくとも1つの変換操作を実行するステップとを含む、上記(2)に記載の方法。
(4)第1ビット・アーキテクチャの命令中の各オペランドのビット・アーキテクチャ・タイプを決定するステップが、第1ビット・アーキテクチャの各命令の特性に関する情報を含む辞書を処理するステップを含む、上記(3)に記載の方法。
(5)少なくとも1つの変換操作を実行するステップが、命令コードが第2ビット・アーキテクチャであることを示すように命令コードの名前を変更するステップを含む、上記(3)に記載の方法。
(6)少なくとも1つの変換操作を実行するステップが、変換を受ける命令中の1つのオペランドを含むレジスタが第2ビット・アーキテクチャにあることを示すようにオペランドを含む各レジスタ上の情報を含むレジスタ状況表を更新するステップを含む、上記(3)に記載の方法。
(7)変換を受ける命令中のオペランドが第1ビット・アーキテクチャにあり、変換を受ける命令中の他のオペランドが第2ビット・アーキテクチャにあるとき、変換を受ける命令中の1つのオペランドを含むレジスタが第2ビット・アーキテクチャにあることを示すようにレジスタ状況表が更新される、上記(6)に記載の方法。
(8)オペランド表の各エントリが、第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するための前記少なくとも1つの変換操作を含む置換表を指すポインタを含む、上記(3)に記載の方法。
(9)第1ビット・アーキテクチャの命令が、第1ビット・アーキテクチャと第2ビット・アーキテクチャの両方のオペランドを有することができる、上記(1)に記載の方法。
(10)第1ビット・アーキテクチャが32ビット・アーキテクチャであり、第2ビット・アーキテクチャが64ビット・アーキテクチャである、上記(1)に記載の方法。
(11)第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャの命令に変換するためのシステムであって、
命令コードおよび少なくとも1つのオペランドを有する第1ビット・アーキテクチャの命令にコードを変換する手段と、
第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するための情報を含む変換表にアクセスする手段と、
変換表が第1ビット・アーキテクチャの命令を変更するよう指示する情報を含む場合に、第1ビット・アーキテクチャの命令を対応する第2ビット・アーキテクチャの命令に変換する手段とを含み、前記変換が、第1ビット・アーキテクチャの命令を変更して第2ビット・アーキテクチャの命令を生成する変換操作に基づいて行われるシステム。
(12)変換表が各命令コードごとに1エントリを含み、変換を実行すべき場合には、各命令コードのエントリがオペランド表を指すポインタを含むことができ、命令コードに対するエントリが1つのオペランド表を指すポインタを含まない場合は変換が実行されない、上記(11)に記載のシステム。
(13)オペランド表がオペランド・ビット・アーキテクチャ・タイプの可能な各組合せのエントリを含み、オペランド表の各エントリが少なくとも1つの変換操作を示し、命令を変換する手段が、
第1ビット・アーキテクチャの命令中の各オペランドのビット・アーキテクチャ・タイプに一致するオペランド・ビット・アーキテクチャ・タイプを有するオペランド表の1つのエントリを決定する手段と、
第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するために少なくとも1つの変換操作を実行する手段とを含む、上記(12)に記載のシステム。
(14)第1ビット・アーキテクチャの命令中の各オペランドのビット・アーキテクチャ・タイプを決定する手段が、第1ビット・アーキテクチャの各命令の特性に関する情報を含む辞書を処理する手段を含む、上記(13)に記載のシステム。
(15)少なくとも1つの変換操作を実行する手段が、命令コードが第2ビット・アーキテクチャにあることを示すように命令コードの名前を変更する手段を含む、上記(13)に記載のシステム。
(16)少なくとも1つの変換操作を実行する手段が、変換を受ける命令中の1つのオペランドを含むレジスタが第2ビット・アーキテクチャにあることを示すようにオペランドを含む各レジスタに関する情報を含むレジスタ状況表を更新する手段を含む、上記(13)に記載のシステム。
(17)変換を受ける命令中のオペランドが第1ビット・アーキテクチャにあり、変換を受ける命令中の他のオペランドが第2ビット・アーキテクチャにあるとき、変換を受ける命令中の1つのオペランドを含むレジスタが第2ビット・アーキテクチャにあることを示すようにレジスタ状況表が更新される、上記(16)に記載のシステム。
(18)オペランド表の各エントリが、第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するための前記少なくとも1つの変換操作を含む置換表を指すポインタを含む、上記(13)に記載のシステム。
(19)第1ビット・アーキテクチャの命令が、第1ビット・アーキテクチャと第2ビット・アーキテクチャの両方のオペランドを有することができる、上記(13)に記載のシステム。
(20)第1ビット・アーキテクチャが32ビット・アーキテクチャであり、第2ビット・アーキテクチャが64ビット・アーキテクチャである、上記(13)に記載のシステム。
(21)第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャの命令に変換するのに使用するための製造品であって、
命令コードおよび少なくとも1つのオペランドを有する第1ビット・アーキテクチャの命令にコードを変換すること、
第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するための情報を含む変換表にアクセスすること、および
変換表が、第1ビット・アーキテクチャの命令を変更するように指示する情報を含む場合に、第1ビット・アーキテクチャの命令を対応する第2ビット・アーキテクチャの命令に変換することをコンピュータに実行させることのできる少なくとも1つの埋め込まれたコンピュータ・プログラムを含むコンピュータで使用可能な媒体を含み、前記変換が、第1ビット・アーキテクチャの命令を変更して第2ビット・アーキテクチャの命令を生成する変換操作に基づいて行われる製造品。
(22)変換表が各命令コードごとに1つのエントリを含み、変換を実行すべき場合に、各命令コードのエントリがオペランド表を指すポインタを含むことができ、命令コードのエントリが1つのオペランド表を指すポインタを含まない場合には変換が実行されない、上記(21)に記載の製造品。
(23)オペランド表がオペランド・ビット・アーキテクチャ・タイプの可能な各組合せのエントリを含み、オペランド表の各エントリが少なくとも1つの変換操作を示し、命令を変換するステップが、
第1ビット・アーキテクチャの命令中の各オペランドのビット・アーキテクチャ・タイプに一致するオペランド・ビット・アーキテクチャ・タイプを有するオペランド表の1つのエントリを決定するステップと、
第1ビット・アーキテクチャから第2ビット・アーキテクチャに命令を変換するために少なくとも1つの変換操作を実行するステップとを含む、上記(22)に記載の製造品。
(24)第1ビット・アーキテクチャの命令中の各オペランドのビット・アーキテクチャ・タイプを決定するステップが、第1ビット・アーキテクチャの各命令の特性に関する情報を含む辞書を処理するステップとを含む、上記(23)に記載の製造品。
(25)少なくとも1つの変換操作を実行するステップが、命令コードが第2ビット・アーキテクチャにあることを示すように命令コードの名前を変更するステップを含む、上記(23)に記載の製造品。
(26)少なくとも1つの変換操作を実行するステップが、変換を受ける命令中の1つのオペランドを含むレジスタが第2ビット・アーキテクチャにあることを示すようにオペランドを含む各レジスタに関する情報を含むレジスタ状況表を更新するステップを含む、上記(23)に記載の製造品。
(27)変換を受ける命令中の1つのオペランドが第1ビット・アーキテクチャにあり、変換を受ける命令中の他のオペランドが第2ビット・アーキテクチャにあるときに、変換を受ける命令中の前記1つのオペランドを含むレジスタが第2ビット・アーキテクチャにあることを示すようにレジスタ状況表が更新される、上記(26)に記載の製造品。
(28)オペランド表の各エントリが、第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するための少なくとも1つの変換操作を含む置換表を指すポインタを含む、上記(23)に記載の製造品。
(29)第1ビット・アーキテクチャの命令が、第1ビット・アーキテクチャと第2ビット・アーキテクチャの両方のオペランドを有することができる、上記(21)に記載の製造品。
(30)第1ビット・アーキテクチャが32ビット・アーキテクチャであり、第2ビット・アーキテクチャが64ビット・アーキテクチャである、上記(21)に記載の製造品。
(31)第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャの命令に変換するのに使用するための少なくとも1つのデータ構造を含むコンピュータ可読データ伝送媒体であって、
第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するための情報を含む少なくとも1つの変換表であって、変換表が、第1ビット・アーキテクチャの命令を変更するように指示する情報を含む場合に、第1ビット・アーキテクチャの命令が対応する第2ビット・アーキテクチャの命令に変換される変換表と、
第1ビット・アーキテクチャの命令を変更して第2ビット・アーキテクチャの命令を生成するための操作を実行するよう指示する変換操作とを含むコンピュータ可読データ伝送媒体。
(32)少なくとも1つのオペランド表をさらに含み、変換表が各命令コードごとに1つのエントリを含み、変換を実行すべき場合には各命令コードのエントリが1つのオペランド表を指すポインタを含むことができ、命令コードのエントリがオペランド表を指すポインタを含まない場合には変換が実行されない、上記(31)に記載のコンピュータ可読データ伝送媒体。
(33)オペランド表がオペランド・ビット・アーキテクチャ・タイプの可能な各組合せのエントリを含み、オペランド表の各エントリが少なくとも1つの変換操作を指示し、オペランド表が、第1ビット・アーキテクチャの命令の各オペランドのビット・アーキテクチャ・タイプに一致するオペランド・ビット・アーキテクチャ・タイプを有する1つのエントリを含み、第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するために少なくとも1つの変換操作が実行される、上記(32)に記載のコンピュータ可読データ伝送媒体。
(34)第1ビット・アーキテクチャの各命令の特性に関する情報を含む辞書をさらに含み、第1ビット・アーキテクチャの命令中の各オペランドのアーキテクチャ・タイプを決定するステップが、各命令の特性を決定するために辞書を処理するステップを含む、上記(33)に記載のコンピュータ可読データ伝送媒体。
(35)さらに、変換を受ける命令中の1つのオペランドを含むレジスタが第2ビット・アーキテクチャにあることを示すオペランドを含む各レジスタに関する情報を含むレジスタ状況表を含み、前記少なくとも1つの変換操作を実行するときにレジスタ状況表が更新される、上記(33)に記載のコンピュータ可読データ伝送媒体。
(36)オペランド表の各エントリが、第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するための前記少なくとも1つの変換操作を含む置換表を指すポインタを含む、上記(33)に記載のコンピュータ可読データ伝送媒体。
【図面の簡単な説明】
【図1】コンパイラの構成要素を示す図である。
【図2】本発明の好ましい実施形態によるコンパイラのコード生成部分の構成要素を示す図である。
【図3】本発明の好ましい実施形態による、コード生成器内で実施される、32ビット命令を64ビット命令に変換するための論理を示す図である。
【図4】本発明の好ましい実施形態による、STOREコマンドを32ビット形式から64ビットの形式に変換するために使用されるエントリの例を示す図である。
【符号の説明】
2 コンパイラ
4 原始プログラム
6 フロント・エンド処理
8 中間コード
10 コード生成器
12 目的プログラム
14 目的コンピュータ
20 ステートメント処理モジュール
22 32ビット命令
24 変換器
26 64ビット命令
28 コンパイラ辞書
30 命令変換表
32 変換オペランド表
34 置換表
Claims (36)
- 第1ビット・アーキテクチャの命令と第2ビット・アーキテクチャの命令との両方を処理することが可能なコンピュータ・システムにおいて実行される、前記第1ビット・アーキテクチャの命令を前記第2ビット・アーキテクチャの命令に変換する方法であって、
命令コードおよび少なくとも1つのオペランドを有する前記第1ビット・アーキテクチャの命令にコードを変換するステップと、
前記第1ビット・アーキテクチャの複数の命令を前記第2ビット・アーキテクチャに変換するための情報を含み、前記第1ビット・アーキテクチャの前記命令コードを含む命令を変換するか否かを指示する複数の命令コードの各々に対する各情報を示し、少なくとも1つの命令が前記第1ビット・アーキテクチャから前記第2ビット・アークテクチャに変換されるべきでないことを示す変換表にアクセスするステップと、
前記変換表が前記第1ビット・アーキテクチャの命令を変更するよう指示する情報を含む場合に、前記第1ビット・アーキテクチャの命令を対応する前記第2ビット・アーキテクチャの命令に変換するステップとを含み、前記変換が前記第1ビット・アーキテクチャの命令を変更して前記第2ビット・アーキテクチャの命令を生成する変換操作に基づいて行われる方法。 - 前記変換表が、各命令コードごとに1つのエントリを含み、変換を実行すべき場合には、各命令コードのエントリがオペランド表を指すポインタを含むことができ、前記命令コードのエントリが1つのオペランド表を指すポインタを含まない場合には、変換が実行されない、請求項1に記載の方法。
- 前記オペランド表が、オペランド・ビット・アーキテクチャ・タイプの可能な各組合せのエントリを含み、前記オペランド表の各エントリが少なくとも1つの変換操作を示し、命令を変換するステップが、
前記第1ビット・アーキテクチャの命令中の各オペランドのビット・アーキテクチャ・タイプに一致するオペランド・ビット・アーキテクチャ・タイプを有する前記オペランド表の1つのエントリを決定するステップと、
前記第1ビット・アーキテクチャの命令を前記第2ビット・アーキテクチャに変換するために前記少なくとも1つの変換操作を実行するステップとを含む、請求項2に記載の方法。 - 前記第1ビット・アーキテクチャの命令中の各オペランドのビット・アーキテクチャ・タイプを決定するステップが、前記第1ビット・アーキテクチャの各命令の特性に関する情報を含む辞書を処理するステップを含む、請求項3に記載の方法。
- 前記少なくとも1つの変換操作を実行するステップが、前記命令コードが前記第2ビット・アーキテクチャであることを示すように前記命令コードの名前を変更するステップを含む、請求項3に記載の方法。
- 前記少なくとも1つの変換操作を実行するステップが、前記変換を受ける前記命令中の1つのオペランドを含むレジスタが前記第2ビット・アーキテクチャにあることを示すようにオペランドを含む各レジスタ上の情報を含むレジスタ状況表を更新するステップを含む、請求項3に記載の方法。
- 前記変換を受ける前記命令中のオペランドが前記第1ビット・アーキテクチャにあり、前記変換を受ける前記命令中の他のオペランドが前記第2ビット・アーキテクチャにあるとき、前記変換を受ける前記命令中の1つのオペランドを含む前記レジスタが前記第2ビット・アーキテクチャにあることを示すように前記レジスタ状況表が更新される、請求項6に記載の方法。
- 前記オペランド表の各エントリが、前記第1ビット・アーキテクチャの命令を前記第2ビット・アーキテクチャに変換するための前記少なくとも1つの変換操作を含む置換表を指すポインタを含む、請求項3に記載の方法。
- 前記第1ビット・アーキテクチャの命令が、前記第1ビット・アーキテクチャと前記第2ビット・アーキテクチャの両方のオペランドを有することができる、請求項1に記載の方法。
- 前記第1ビット・アーキテクチャが32ビット・アーキテクチャであり、前記第2ビット・アーキテクチャが64ビット・アーキテクチャである、請求項1に記載の方法。
- 第1ビット・アーキテクチャの命令と第2ビット・アーキテクチャの命令との両方を処理することが可能な、前記第1ビット・アーキテクチャの命令を前記第2ビット・アーキテクチャの命令に変換するためのシステムであって、
命令コードおよび少なくとも1つのオペランドを有する前記第1ビット・アーキテクチャの命令にコードを変換する手段と、
第1ビット・アーキテクチャの複数の命令を前記第2ビット・アーキテクチャに変換するための情報を含み、前記第1ビット・アーキテクチャの前記命令コードを含む命令を変換するか否かを指示する複数の命令コードの各々に対する各情報を示し、少なくとも1つの命令が前記第1ビット・アーキテクチャから前記第2ビット・アークテクチャに変換されるべきでないことを示す変換表にアクセスする手段と、
前記変換表が前記第1ビット・アーキテクチャの命令を変更するよう指示する情報を含む場合に、前記第1ビット・アーキテクチャの命令を対応する前記第2ビット・アーキテクチャの命令に変換する手段とを含み、前記変換が、前記第1ビット・アーキテクチャの命令を変更して前記第2ビット・アーキテクチャの命令を生成する変換操作に基づいて行われるシステム。 - 前記変換表が各命令コードごとに1エントリを含み、変換を実行すべき場合には、各命令コードのエントリがオペランド表を指すポインタを含むことができ、前記命令コードに対するエントリが1つのオペランド表を指すポインタを含まない場合は変換が実行されない、請求項11に記載のシステム。
- 前記オペランド表がオペランド・ビット・アーキテクチャ・タイプの可能な各組合せのエントリを含み、前記オペランド表の各エントリが少なくとも1つの変換操作を示し、命令を変換する手段が、
前記第1ビット・アーキテクチャの命令中の各オペランドのビット・アーキテクチャ・タイプに一致するオペランド・ビット・アーキテクチャ・タイプを有する前記オペランド表の1つのエントリを決定する手段と、
前記第1ビット・アーキテクチャの命令を前記第2ビット・アーキテクチャに変換するために前記少なくとも1つの変換操作を実行する手段とを含む、請求項12に記載のシステム。 - 前記第1ビット・アーキテクチャの命令中の各オペランドのビット・アーキテクチャ・タイプを決定する手段が、前記第1ビット・アーキテクチャの各命令の特性に関する情報を含む辞書を処理する手段を含む、請求項13に記載のシステム。
- 前記少なくとも1つの変換操作を実行する手段が、前記命令コードが前記第2ビット・アーキテクチャにあることを示すように前記命令コードの名前を変更する手段を含む、請求項13に記載のシステム。
- 前記少なくとも1つの変換操作を実行する手段が、前記変換を受ける前記命令中の1つのオペランドを含むレジスタが前記第2ビット・アーキテクチャにあることを示すようにオペランドを含む各レジスタに関する情報を含むレジスタ状況表を更新する手段を含む、請求項13に記載のシステム。
- 前記変換を受ける前記命令中のオペランドが前記第1ビット・アーキテクチャにあり、前記変換を受ける前記命令中の他のオペランドが前記第2ビット・アーキテクチャにあるとき、前記変換を受ける前記命令中の1つのオペランドを含む前記レジスタが前記第2ビット・アーキテクチャにあることを示すように前記レジスタ状況表が更新される、請求項16に記載のシステム。
- 前記オペランド表の各エントリが、前記第1ビット・アーキテクチャの命令を前記第2ビット・アーキテクチャに変換するための前記少なくとも1つの変換操作を含む置換表を指すポインタを含む、請求項13に記載のシステム。
- 前記第1ビット・アーキテクチャの命令が、前記第1ビット・アーキテクチャと前記第2ビット・アーキテクチャの両方のオペランドを有することができる、請求項13に記載のシステム。
- 前記第1ビット・アーキテクチャが32ビット・アーキテクチャであり、前記第2ビット・アーキテクチャが64ビット・アーキテクチャである、請求項13に記載のシステム。
- 第1ビット・アーキテクチャの命令と第2ビット・アーキテクチャの命令との両方を処理することが可能なコンピュータ・システムにおいて実行される、前記第1ビット・アーキテクチャの命令を前記第2ビット・アーキテクチャの命令に変換するプログラムが記録された記録媒体であって、
命令コードおよび少なくとも1つのオペランドを有する前記第1ビット・アーキテクチャの命令にコードを変換するステップと、
第1ビット・アーキテクチャの複数の命令を前記第2ビット・アーキテクチャに変換するための情報を含み、前記第1ビット・アーキテクチャの前記命令コードを含む命令を変換するか否かを指示する複数の命令コードの各々に対する各情報を示し、少なくとも1つの命令が前記第1ビット・アーキテクチャから前記第2ビット・アークテクチャに変換されるべきでないことを示す変換表にアクセスするステップと、
前記変換表が、前記第1ビット・アーキテクチャの命令を変更するように指示する情報を含む場合に、前記第1ビット・アーキテクチャの命令を対応する前記第2ビット・アーキテクチャの命令に変換するステップとを前記コンピュータ・システムに実行させ、前記変換が、前記第1ビット・アーキテクチャの命令を変更して前記第2ビット・アーキテクチャの命令を生成する変換操作に基づいて行われることを特徴とする記録媒体。 - 前記変換表が各命令コードごとに1つのエントリを含み、変換を実行すべき場合に、各命令コードのエントリがオペランド表を指すポインタを含むことができ、前記命令コードのエントリが1つのオペランド表を指すポインタを含まない場合には変換が実行されない、請求項21に記載の記録媒体。
- 前記オペランド表がオペランド・ビット・アーキテクチャ・タイプの可能な各組合せのエントリを含み、前記オペランド表の各エントリが少なくとも1つの変換操作を示し、命令を変換するステップが、
前記第1ビット・アーキテクチャの命令中の各オペランドのビット・アーキテクチャ・タイプに一致するオペランド・ビット・アーキテクチャ・タイプを有するオペランド表の1つのエントリを決定するステップと、
前記第1ビット・アーキテクチャから前記第2ビット・アーキテクチャに命令を変換するために前記少なくとも1つの変換操作を実行するステップとを含む、請求項22に記載の記録媒体。 - 前記第1ビット・アーキテクチャの命令中の各オペランドのビット・アーキテクチャ・タイプを決定するステップが、前記第1ビット・アーキテクチャの各命令の特性に関する情報を含む辞書を処理するステップとを含む、請求項23に記載の記録媒体。
- 前記少なくとも1つの変換操作を実行するステップが、前記命令コードが前記第2ビット・アーキテクチャにあることを示すように前記命令コードの名前を変更するステップを含む、請求項23に記載の記録媒体。
- 前記少なくとも1つの変換操作を実行するステップが、前記変換を受ける前記命令中の1つのオペランドを含むレジスタが前記第2ビット・アーキテクチャにあることを示すようにオペランドを含む各レジスタに関する情報を含むレジスタ状況表を更新するステップを含む、請求項23に記載の記録媒体。
- 前記変換を受ける前記命令中の1つのオペランドが前記第1ビット・アーキテクチャにあり、前記変換を受ける前記命令中の他のオペランドが前記第2ビット・アーキテクチャにあるときに、前記変換を受ける前記命令中の前記1つのオペランドを含むレジスタが前記第2ビット・アーキテクチャにあることを示すように前記レジスタ状況表が更新される、請求項26に記載の記録媒体。
- 前記オペランド表の各エントリが、前記第1ビット・アーキテクチャの命令を前記第2ビット・アーキテクチャに変換するための前記少なくとも1つの変換操作を含む置換表を指すポインタを含む、請求項23に記載の記録媒体。
- 前記第1ビット・アーキテクチャの命令が、前記第1ビット・アーキテクチャと前記第2ビット・アーキテクチャの両方のオペランドを有することができる、請求項21に記載の記録媒体。
- 前記第1ビット・アーキテクチャが32ビット・アーキテクチャであり、前記第2ビット・アーキテクチャが64ビット・アーキテクチャである、請求項21に記載の記録媒体。
- 第1ビット・アーキテクチャの命令と第2ビット・アーキテクチャの命令との両方を処理することが可能なコンピュータ・システムにおいて実行される、前記第1ビット・アーキテクチャの命令を前記第2ビット・アーキテクチャの命令に変換するのに使用するための少なくとも1つのデータ構造を含むコンピュータ可読な記録媒体であって、
第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャに変換するための情報を含み、前記第1ビット・アーキテクチャの命令コードを含む命令を変換するか否かを指示する複数の命令コードの各々に対する各情報を示し、少なくとも1つの命令が前記第1ビット・アーキテクチャから前記第2ビット・アークテクチャに変換されるべきでないことを示す少なくとも1つの変換表であって、前記変換表が、前記第1ビット・アーキテクチャの命令を変更するように指示する情報を含む場合に、前記第1ビット・アーキテクチャの命令が対応する前記第2ビット・アーキテクチャの命令に変換される前記変換表と、
前記第1ビット・アーキテクチャの命令を変更して前記第2ビット・アーキテクチャの命令を生成するための操作を実行するよう指示する変換操作とを含むコンピュータ可読な記録媒体。 - 少なくとも1つのオペランド表をさらに含み、前記変換表が各命令コードごとに1つのエントリを含み、変換を実行すべき場合には各命令コードのエントリが1つのオペランド表を指すポインタを含むことができ、前記命令コードの前記エントリがオペランド表を指すポインタを含まない場合には変換が実行されない、請求項31に記載の記録媒体。
- 前記オペランド表がオペランド・ビット・アーキテクチャ・タイプの可能な各組合せのエントリを含み、前記オペランド表の各エントリが少なくとも1つの変換操作を指示し、前記オペランド表が、前記第1ビット・アーキテクチャの命令の各オペランドの前記ビット・アーキテクチャ・タイプに一致するオペランド・ビット・アーキテクチャ・タイプを有する1つのエントリを含み、前記第1ビット・アーキテクチャの命令を前記第2ビット・アーキテクチャに変換するために前記少なくとも1つの変換操作が実行される、請求項32に記載の記録媒体。
- 前記第1ビット・アーキテクチャの各命令の特性に関する情報を含む辞書をさらに含み、前記第1ビット・アーキテクチャの命令中の各オペランドの前記アーキテクチャ・タイプを決定するステップが、各命令の特性を決定するために前記辞書を処理するステップを含む、請求項33に記載の記録媒体。
- さらに、前記変換を受ける前記命令中の1つのオペランドを含むレジスタが前記第2ビット・アーキテクチャにあることを示すオペランドを含む各レジスタに関する情報を含むレジスタ状況表を含み、前記少なくとも1つの変換操作を実行するときに前記レジスタ状況表が更新される、請求項33に記載の記録媒体。
- 前記オペランド表の各エントリが、前記第1ビット・アーキテクチャの命令を前記第2ビット・アーキテクチャに変換するための前記少なくとも1つの変換操作を含む置換表を指すポインタを含む、請求項33に記載の記録媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/483,203 US6662361B1 (en) | 2000-01-14 | 2000-01-14 | Method, system, program, and data structures for transforming an instruction in a first bit architecture to an instruction in a second bit architecture |
US09/483203 | 2000-01-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001216169A JP2001216169A (ja) | 2001-08-10 |
JP3606561B2 true JP3606561B2 (ja) | 2005-01-05 |
Family
ID=23919104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001003173A Expired - Fee Related JP3606561B2 (ja) | 2000-01-14 | 2001-01-11 | 第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャの命令に変換する方法、システム、プログラムおよびデータ構造 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6662361B1 (ja) |
EP (1) | EP1118933A3 (ja) |
JP (1) | JP3606561B2 (ja) |
KR (1) | KR20010086328A (ja) |
CN (1) | CN1127688C (ja) |
SG (1) | SG99328A1 (ja) |
TW (1) | TW494361B (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7024666B1 (en) * | 2002-01-28 | 2006-04-04 | Roy-G-Biv Corporation | Motion control systems and methods |
US20010032278A1 (en) | 1997-10-07 | 2001-10-18 | Brown Stephen J. | Remote generation and distribution of command programs for programmable devices |
US8032605B2 (en) | 1999-10-27 | 2011-10-04 | Roy-G-Biv Corporation | Generation and distribution of motion commands over a distributed network |
US6880069B1 (en) * | 2000-06-30 | 2005-04-12 | Intel Corporation | Replay instruction morphing |
US7904194B2 (en) | 2001-02-09 | 2011-03-08 | Roy-G-Biv Corporation | Event management systems and methods for motion control systems |
US6819270B1 (en) * | 2003-06-30 | 2004-11-16 | American Express Travel Related Services Company, Inc. | Method and system for universal conversion of MCC, SIC or other codes |
US8027349B2 (en) | 2003-09-25 | 2011-09-27 | Roy-G-Biv Corporation | Database event driven motion systems |
US20060064503A1 (en) | 2003-09-25 | 2006-03-23 | Brown David W | Data routing systems and methods |
CN100345136C (zh) * | 2004-06-30 | 2007-10-24 | 中国科学院计算技术研究所 | 使64位处理器兼容32位桥接芯片的系统及转换装置 |
US7437541B2 (en) * | 2004-07-08 | 2008-10-14 | International Business Machiens Corporation | Atomically updating 64 bit fields in the 32 bit AIX kernel |
CN100388195C (zh) * | 2006-02-22 | 2008-05-14 | 北京金山软件有限公司 | 一种64位视窗操作系统下获取函数参数的方法及系统 |
US9652210B2 (en) * | 2007-08-28 | 2017-05-16 | Red Hat, Inc. | Provisioning a device with multiple bit-size versions of a software component |
US8832679B2 (en) * | 2007-08-28 | 2014-09-09 | Red Hat, Inc. | Registration process for determining compatibility with 32-bit or 64-bit software |
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 |
WO2017153815A1 (en) * | 2016-03-11 | 2017-09-14 | Lzlabs Gmbh | Load module compiler |
CN107423084B (zh) * | 2017-04-24 | 2021-02-02 | 武汉斗鱼网络科技有限公司 | 程序修改方法及装置 |
CN109491659B (zh) * | 2017-09-11 | 2022-06-21 | 龙芯中科技术股份有限公司 | 指令转换方法和装置 |
JP2019095952A (ja) * | 2017-11-21 | 2019-06-20 | ソニーセミコンダクタソリューションズ株式会社 | プロセッサ、情報処理装置および処理方法 |
US20220374236A1 (en) * | 2021-05-20 | 2022-11-24 | Huawei Technologies Co., Ltd. | Method and system for optimizing address calculations |
WO2024036517A1 (zh) * | 2022-08-17 | 2024-02-22 | 芯原微电子(上海)股份有限公司 | 一种交叉链接方法、装置,电子设备及存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0428560A4 (en) * | 1988-07-29 | 1992-04-01 | Hunter Systems Software, Inc. | Machine process for translating programs in binary machine language into another binary machine language |
EP0871108B1 (en) | 1991-03-11 | 2000-09-13 | MIPS Technologies, Inc. | Backward-compatible computer architecture with extended word size and address space |
DE69429061T2 (de) | 1993-10-29 | 2002-07-18 | Advanced Micro Devices Inc | Superskalarmikroprozessoren |
US5781750A (en) * | 1994-01-11 | 1998-07-14 | Exponential Technology, Inc. | Dual-instruction-set architecture CPU with hidden software emulation mode |
US5577231A (en) * | 1994-12-06 | 1996-11-19 | International Business Machines Corporation | Storage access authorization controls in a computer system using dynamic translation of large addresses |
US5826089A (en) | 1996-01-04 | 1998-10-20 | Advanced Micro Devices, Inc. | Instruction translation unit configured to translate from a first instruction set to a second instruction set |
US5842017A (en) * | 1996-01-29 | 1998-11-24 | Digital Equipment Corporation | Method and apparatus for forming a translation unit |
US5819067A (en) | 1996-02-23 | 1998-10-06 | Advanced Micro Devices, Inc. | Computer system configured to translate a computer program into a second computer program prior to executing the computer program |
US5875318A (en) | 1996-04-12 | 1999-02-23 | International Business Machines Corporation | Apparatus and method of minimizing performance degradation of an instruction set translator due to self-modifying code |
US5710731A (en) * | 1996-05-07 | 1998-01-20 | International Business Machines Corporation | Combined adder and decoder digital circuit |
US5774694A (en) * | 1996-09-25 | 1998-06-30 | Intel Corporation | Method and apparatus for emulating status flag |
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 |
US6009261A (en) * | 1997-12-16 | 1999-12-28 | International Business Machines Corporation | Preprocessing of stored target routines for emulating incompatible instructions on a target processor |
US6199202B1 (en) * | 1998-01-06 | 2001-03-06 | Hewlett-Packard Company | Method and apparatus for the inter-operation of differing architectural and run time conventions |
US6018799A (en) * | 1998-07-22 | 2000-01-25 | Sun Microsystems, Inc. | Method, apparatus and computer program product for optimizing registers in a stack using a register allocator |
-
2000
- 2000-01-14 US US09/483,203 patent/US6662361B1/en not_active Expired - Fee Related
- 2000-10-13 TW TW089121467A patent/TW494361B/zh not_active IP Right Cessation
- 2000-12-13 EP EP00311086A patent/EP1118933A3/en not_active Withdrawn
- 2000-12-29 CN CN00129488A patent/CN1127688C/zh not_active Expired - Fee Related
-
2001
- 2001-01-05 SG SG200100114A patent/SG99328A1/en unknown
- 2001-01-11 JP JP2001003173A patent/JP3606561B2/ja not_active Expired - Fee Related
- 2001-01-12 KR KR1020010001884A patent/KR20010086328A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
TW494361B (en) | 2002-07-11 |
EP1118933A2 (en) | 2001-07-25 |
US6662361B1 (en) | 2003-12-09 |
CN1127688C (zh) | 2003-11-12 |
KR20010086328A (ko) | 2001-09-10 |
CN1306245A (zh) | 2001-08-01 |
EP1118933A3 (en) | 2004-04-07 |
JP2001216169A (ja) | 2001-08-10 |
SG99328A1 (en) | 2003-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3606561B2 (ja) | 第1ビット・アーキテクチャの命令を第2ビット・アーキテクチャの命令に変換する方法、システム、プログラムおよびデータ構造 | |
EP1385090B1 (en) | Program code conversion for variably sized registers | |
US6738967B1 (en) | Compiling for multiple virtual machines targeting different processor architectures | |
Beck | System software: an introduction to systems programming | |
US7594094B2 (en) | Move data facility with optional specifications | |
EP0709767A1 (en) | Method and apparatus for multiplatform instruction set architecture | |
JP2002529812A (ja) | 実行時にコンパイルされたコンピュータコードの機能を改変するためのシステム | |
US20050160415A1 (en) | Method and system for improving performance of Java virtual machine | |
US6684394B1 (en) | Relocation format for linking with relocation instructions containing operations for combining section data | |
CN106033370B (zh) | 64位Java虚拟机的实现方法及装置 | |
US20170068610A1 (en) | Debugger display of vector register contents after compiler optimizations for vector instructions | |
JP2009537879A (ja) | ユーザ選択可能なストレージ・アクセス・キーを用いてデータを移動する方法及びシステム | |
JP3246438B2 (ja) | 可変ターゲットコンパイル処理方法、その処理装置、そのプログラムの記憶媒体および変換テーブルの記憶媒体 | |
US6859932B1 (en) | Relocation format for linking | |
US6347318B1 (en) | Method, system, and apparatus to improve performance of tree-based data structures in computer programs | |
US7032230B2 (en) | Efficient virtual function calls for compiled/interpreted environments | |
US6687899B1 (en) | Relocation format for linking | |
US20030110478A1 (en) | Portable run-time code synthesis in a caching dynamic translator | |
US6704928B1 (en) | Relocation format for linking | |
Smith et al. | POPLOG's Two-level virtual machine support for interactive languages | |
US5774694A (en) | Method and apparatus for emulating status flag | |
Engelke et al. | Using LLVM for optimized lightweight binary re-writing at runtime | |
WO2006131695A1 (en) | Method and apparatus for combined execution of native code and target code during program code conversion | |
JP2002108625A (ja) | 言語処理装置及び言語処理プログラムを格納した記録媒体 | |
Guerrero et al. | Address-encoded byte order |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040525 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20040614 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040614 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040823 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040921 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20040921 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041004 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071015 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081015 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |