JPH08241196A - 分岐命令処理方式 - Google Patents

分岐命令処理方式

Info

Publication number
JPH08241196A
JPH08241196A JP7072345A JP7234595A JPH08241196A JP H08241196 A JPH08241196 A JP H08241196A JP 7072345 A JP7072345 A JP 7072345A JP 7234595 A JP7234595 A JP 7234595A JP H08241196 A JPH08241196 A JP H08241196A
Authority
JP
Japan
Prior art keywords
branch instruction
segment
address
code length
label
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
JP7072345A
Other languages
English (en)
Other versions
JP3047771B2 (ja
Inventor
Keiichi Kurahashi
啓一 倉橋
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP7072345A priority Critical patent/JP3047771B2/ja
Priority to US08/611,493 priority patent/US5740447A/en
Publication of JPH08241196A publication Critical patent/JPH08241196A/ja
Application granted granted Critical
Publication of JP3047771B2 publication Critical patent/JP3047771B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Executing Machine-Instructions (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 モジュール間の分岐命令のコード長の最適化
を行うことができる分岐命令処理方式を提供する。 【構成】 再配置処理部102では、最適化処理部10
3による処理の結果、セグメントサイズに変化があった
場合、その都度、再配置処理部102の中でフィードバ
ックがかかり、配置部108が既セグメントを含む以降
のセグメントをアドレス空間に再配置し、シンボル解決
部109が配置により決定したアドレスをラベルのアド
レス値に反映し決定する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、情報処理装置用の連結
編集プログラム(以下、リンカという。)でモジュール
を配置する際の分岐命令処理方式に関する。
【0002】
【従来の技術】従来、アセンブリ言語で書かれたプログ
ラムをアセンブラでアセンブルする際の分岐命令の処理
方式においては、アセンブラがアセンブル単位であるプ
ログラムのモジュール内のアドレス範囲において分岐命
令とその分岐命令が参照するラベルとのアドレスの距離
によって最適なコード長の分岐命令を選択していた。と
ころが、モジュール間はアセンブル後のリンカで初めて
リンクされるので、モジュールからモジュールへの分岐
は分岐するのに最適なコード長の分岐命令を判断するた
めの情報を持っていなかった。このため、最も遠くのア
ドレスまで分岐可能となる分岐命令、すなわち命令コー
ド長が最長の分岐命令を無条件で選択していた。
【0003】特開昭62−205431号公報では、か
かる不都合を解決するリンカを提唱している。
【0004】このリンカにおいては、モジュール間の分
岐命令を最適なコード長の分岐命令にするために、モジ
ュール・サイズを保持する手段、モジュール間分岐命令
の分岐命令が属するモジュールの先頭からの相対番地を
保持する手段、モジュール間分岐命令の分岐命令が属す
るモジュールの終わりからの相対番地を保持する手段、
モジュール間分岐命令により参照されているラベルを保
持する手段およびラベルが属するモジュール以外のモジ
ュールから参照されるラベルのモジュールの終わりから
の相対番地を保持する手段を用いて、プログラム内の全
てのモジュール間分岐命令についてコード長の短い分岐
命令で分岐可能であれば、コード長の短い分岐命令を選
択していた。
【0005】かかる技術をさらに具体的に説明する。
【0006】図6はこの分岐命令処理方式を示すブロッ
ク図である。図6に示すように、翻訳プログラムである
アセンブラ601は、アセンブル時にオブジェクトモジ
ュール603のテーブル604を生成し、連結編集プロ
グラムであるリンカ605は、このテーブル604を参
照して、最適な分岐命令を選択し、生成するロードモジ
ュール606に埋め込んでいく。
【0007】この過程を図7のユーザプログラムの一例
を示す説明図および図8のテーブル構成図を用いて説明
する。モジュール11、モジュール12、モジュール1
3の順に連結する場合、リンカは、モジュール11に関
してテーブル21を参照して、1番目の仮分岐命令BR
Bのモジュールの終わりからの相対番地m1と、その
仮分岐命令の分岐先Bに関してテーブル22を参照し
て、分岐先Bのモジュールの始めからの相対番地n4と
の和(m1+n4)を計算し、コード長の短い分岐命令
によって分岐できる範囲であるか否かを判定する。な
お、図8のテーブルにおいて、「分岐命令」のラベルは
その分岐命令の分岐先のラベル名であり、「分岐先」の
ラベルはその「分岐先」についているラベル名とする。
その結果、分岐できる範囲でなければ、仮分岐命令BR
Bをコード長の長い分岐命令に置き換え、分岐できる
範囲であれば、コード長の短い分岐命令に置き換える。
もし、短い分岐命令に置き換えられた場合には、(コー
ド長の長い分岐命令のコードサイズ−コード長の短い分
岐命令のコードサイズ)の差分短くされた分岐命令のア
ドレス以降のアドレスを参照しているアドレスと参照先
のアドレスがずれるので、再配置情報の内容の補正を行
う。次に、テーブル21の2番目の仮分岐命令BR C
について同様に、仮分岐命令BR Cのモジュールの終
わりからの相対番地m2、モジュール12のモジュール
サイズk2、その仮分岐命令の分岐先Cのモジュールの
始めからの相対番地n6の和(m2+k2+n6)を計
算し、コード長の短い分岐命令によって、分岐できる範
囲であるか否かを判定する。分岐できる範囲でなけれ
ば、仮分岐命令BR Cをコード長の長い分岐命令に置
き換え、分岐できる範囲であれば、コード長の短い分岐
命令に置き換える。また、短い分岐命令に置き換えられ
た場合には、(コード長の長い分岐命令のコードサイズ
−コード長の短い分岐命令のコードサイズ)の差分の再
配置情報に対する補正を行う。モジュール13の2つの
BR Bについても同様に計算し、判定し、分岐命令に
置き換え、再配置情報の補正を行う。全ての仮分岐命令
の置き換えが終了したら、再配置情報によりアドレスを
参照している部分に対して、コード長が変わったことに
よる補正を行う。モジュール11のBR Aには、分岐
命令とラベルAを示すアドレスが割当てられるが、BR
B、BR Cのコード長が短くなった場合、ラベルA
のアドレスも変化する。このため、全ての仮分岐命令に
対する分岐命令への置き換えが決定した後に、再配置情
報により、アドレス参照部分のアドレス情報を変更され
たアドレスに更新する。
【0008】しかし、後者の場合、セグメント(配置を
する最少のアドレス範囲の単位。これに対してモジュー
ルはいくつかのセグメントの集まりで一度にアセンブル
する単位。)の配置優先順位および分岐命令とその分岐
命令が参照するラベルとに挟まれた分岐命令を考慮して
いないため、たとえば、上述した例の場合、モジュール
11のBR Bの分岐命令の判断において、その分岐命
令とラベルBとの間に挟まれた分岐命令BR Cが変化
するであろうコード長を考慮していないため、BR C
が確実にコード長の短い分岐命令になる場合でも、BR
Bはコード長の長い分岐命令になってしまう場合があ
り、最適なコード長の選択が行えなかった。
【0009】また、このような場合、当初のセグメント
の中のプログラム長が変化するのでセグメントの配置優
先順位を考慮することも問題となる。
【0010】
【発明が解決しようとする課題】上述した従来の分岐命
令処理方式では、リンカでモジュールを配置した後は、
プログラムを配置した順で単に一度に一括で再配置する
にすぎなかった。従って、セグメントの配置が昇順でな
い場合や分岐命令とその分岐命令が参照するラベルとの
間に分岐命令を記述した場合等に、最適なコード長の分
岐命令を選択できないため、コード長が増加してしまう
という欠点があった。特に、ROM制限の厳しいアセン
ブラの開発を行う場合、分岐命令の最適なコードを選択
できないため、設計者は、ソース・プログラム・ファイ
ルの記述を工夫することが必要であった。本発明は、上
記従来の欠点を解消し、モジュール間の分岐命令のコー
ド長の最適化を行うことができる分岐命令処理方式を提
供することを目的とする。
【0011】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、情報処理装置用の連結編集プログラム内
で、セグメントの集合であるモジュール間の分岐を行う
分岐命令を処理する方式において、前記分岐命令と分岐
命令が参照するラベルとの間のアドレスに位置する分岐
命令のコード長の変化量を算出するステップと、前記コ
ード長の変化量に従ってセグメントの再配置をセグメン
ト毎にその都度繰り返し行うステップとを構成としてい
る。
【0012】本発明の態様として、上記の分岐命令処理
方式において、コード長の変化量に従ったセグメントの
再配置を、セグメントの配置優先順位に従い行うことを
特徴としている。
【0013】また、別の態様として、上記の分岐命令処
理方式において、コード長の変化量に従って、ラベルの
アドレスを補正するアドレス補正とセグメントサイズを
補正するセグメント補正を行うことで、セグメントの再
配置を行うことを特徴としている。
【0014】上記目的を達成するため、本発明は、情報
処理装置用の連結編集プログラム内で、セグメントの集
合であるモジュール間の分岐を行う分岐命令を処理する
方式において、命令コードの修正情報を含むリロケーシ
ョン情報から分岐命令を判別する分岐命令判別手段と、
前記分岐命令と分岐命令が参照するラベルとの間のアド
レスに位置する分岐命令のコード長の変化量を算出する
コード変化量算出手段と、前記コード長の変化量に従っ
てセグメントの再配置をセグメント毎にその都度繰り返
し行う再配置手段を備える構成としている。
【0015】また、好ましい態様によれば、再配置手段
は、コード長の変化量に従ったセグメントの再配置を、
セグメントの配置優先順位に従い行う。また、再配置手
段は、コード長の変化量に従って、ラベルのアドレスを
補正するアドレス補正とセグメントサイズを補正するセ
グメント補正を行うことで、セグメントの再配置を行
う。
【0016】
【作用】本発明では、リンカにおいて、分岐命令と分岐
命令が参照するラベルとの間のコード変化量を算出する
ことにより、分岐命令を決定し、そして例えばアドレス
補正およびセグメント補正を行い、セグメントの配置優
先順位に従い、再配置をその都度繰り返すことにより、
プログラム内の全てのモジュール間の分岐命令を最適な
コード長とすることができる。
【0017】
【実施例】以下、本発明の実施例の詳細を図面に基づい
て説明する。図1は本発明の一実施例に係るリンカの構
成を示すブロック図である。
【0018】同図に示すリンカは、リロケータブルアセ
ンブラおよびコンパイラが出力するオブジェクトモジュ
ール101を入力する入力部106と、各モジュールの
結合を行う結合部107と、結合したモジュールを各セ
グメント毎にアドレス空間に配置する配置部108と、
配置部108により決定されたアドレスをラベル(シン
ボル)のアドレス値に反映し、決定するシンボル解決部
109と、リロケータブルな命令コードをシンボル解決
部109により決定したラベルのアドレス値をもとに、
アブソリュートな値に修正するコード修正部116と、
入力部106により入力したコード修正の修正情報を有
するリロケーション情報301と、ロードモジュールを
出力する出力部117とを備える。
【0019】さらに、このリンカは、リロケーション情
報301をもとに、分岐命令を決定するための情報であ
るセグメント毎のリロケーション情報301より分岐命
令を識別する分岐命令判断部110と、分岐命令と分岐
命令が参照するラベルとの間の分岐命令のコード変化量
を算出するコード変化量算出部111と、分岐命令と分
岐命令が参照するラベルの距離の算出する距離算出部1
12と、分岐命令を決定する分岐命令決定部113とで
構成される命令決定部104を備え、さらにこの命令決
定部に104により決定された分岐命令のコード長が長
い場合、各アドレスおよびシンボル値の補正を行うアド
レス補正部114と、セグメント内の全ての分岐命令を
決定した後、既セグメントのサイズを補正するセグメン
ト補正部115とを備える。
【0020】このリンカでは、これらの命令決定部10
4、アドレス補正部114およびセグメント補正部11
5により最適化処理部103を構成している。また、配
置部108、シンボル解決部109および最適化処理部
103により再配置処理部102を構成している。
【0021】そして、再配置処理部102では、最適化
処理部103による処理の結果、セグメントサイズに変
化があった場合、その都度、後に詳述するように再配置
処理部102の中でフィードバックがかかり、配置部1
08が既セグメントを含む以降のセグメントをアドレス
空間に再配置し、シンボル解決部109が配置により決
定したアドレスをラベルのアドレス値に反映し決定する
ことで、次のセグメントの最適化処理へと制御する。従
って、従来のように一度に一括で再配置を行うにとどま
らず、セグメント毎にその都度再配置処理を繰り返すこ
とによりセグメント内の分岐命令が結果的に最適化でき
ることになる。
【0022】次に、本実施例の動作について説明する。
まず、オブジェクトモジュール101から複数のファイ
ルの結合に必要な情報を入力部106が入力し、結合部
107で各モジュールの結合処理を行う。
【0023】次に、配置部108で、結合したモジュー
ルをセグメント毎にアドレス空間に配置する。シンボル
解決部109では、配置により決定したアドレスをもと
にラベルのアドレス値を決定する。コード補正部116
では、入力部106により入力したコード修正の修正情
報を有するリロケーション情報301により、オブジェ
クコードの確定していない部分に対し、シンボル解決部
109で決定したラベルのアドレス値を参照し修正す
る。出力部117では、以上により確定したロードモジ
ュールを出力する。
【0024】コード修正部116は、最適化処理部10
3および再配置処理部102が終了し、全てのセグメン
トの配置およびシンボル解決が終了した後、コード修正
を実行する。
【0025】リロケーション情報301は、図2に示す
ように、修正タイプ302、修正位置303、参照シン
ボル304、修正値305、コード変化量306を含
む。
【0026】最適化処理部103では、次のような処理
を行う。まず、命令決定部104において、分岐命令判
断部110により、リロケーション情報301の修正タ
イプ302が分岐命令の場合、コード変化量算出部11
1で、分岐命令と分岐命令の飛び先との間のコード増加
量の合計を算出する。更に、距離算出部112では、リ
ロケーション情報301の参照シンボル304および修
正値305より分岐命令と分岐命令の飛び先との距離を
算出する。ここで、算出した距離およびコード変化量の
合計により、分岐命令決定部113では、分岐命令と分
岐命令の飛び先とのコード長の変化を考慮し、コード長
の短い分岐命令で分岐が可能かどうかの判断を行い、短
い分岐命令で分岐が不可能な場合、修正タイプ302を
長い分岐命令のタイプに変更し、コード変化量306を
長い分岐命令に置き換えたことでコード長が増加した
分、減算する。ただし、この場合、コード変化量の合計
からこれ以上長い分岐命令になり得ない場合には、コー
ド変化量306を、「0」とする。
【0027】アドレス補正部114では、命令決定部1
04において長い分岐命令に変化した場合、セグメント
内の既分岐命令以降のリロケーション情報の修正位置3
03およびラベルのアドレス値を変化したコード長の長
さ分だけ補正する。
【0028】セグメント補正部115は、既セグメント
の最適化処理部103が終了した後、セグメントサイズ
を変化したコード長の長さ分だけ補正する。
【0029】そして、更に、配置部108に戻り、再び
次のセグメントの最適化処理を行っていく。すなわち、
配置部108が既セグメント以降のセグメントをアドレ
ス空間に再配置し、シンボル解決部109が配置により
決定したアドレスをラベルのアドレス値に反映してい
く。
【0030】以下、図3に示す流れ図に従って最適化処
理を詳細に説明する。
【0031】ここで、オブジェクトモジュール101と
して図4のモジュールAおよびB、Cを入力部106に
より入力する。この場合、セグメントの配置優先順位を
セグメントC1、C2、C3の順とする。また、オブジ
ェクトモジュール101では、モジュール間分岐命令
は、全て2バイト分岐命令とし、分岐可能な範囲は、−
128から127バイトの相対距離内とする。これと
は、別に、64Kバイト内で分岐可能な3バイト分岐命
令を仮定する。また、リロケーション情報301に含ま
れるセグメントC1、C2、C3のリロケーション情報
の内容例を図5に示す。
【0032】最適化処理部103では、まず、入力部1
06で入力したリロケーション情報301より、最初の
セグメントC1のリロケーション情報の有無を判断する
(ステップ401)。ここでは、BR L2のリロケー
ション情報が有るので、リロケーション情報有りと判断
する。
【0033】次に、命令決定部104において、分岐命
令を判断する(ステップ402)。ここでは、リロケー
ション情報301の修正タイプ302が分岐命令なの
で、BR L2とL2の間のコード変化量Y2を算出す
る(ステップ403)。更に、BR L2の次のリロケ
ーションアドレスとL2との距離X2を算出し(ステッ
プ404)、X2+Y2および×2が、2バイト分岐命
令の分岐可能な範囲を判断する(ステップ405)。範
囲を超えていたら、リロケーション情報301の修正タ
イプ302を長い分岐命令である3バイト分岐命令のタ
イプに命令変換し(ステップ406)、コード変化量を
0とする。
【0034】アドレス補正部114では、命令決定部1
04で、3バイト分岐命令に変化したので、BR L2
以降のリロケーション情報301の修正位置情報303
およびラベルのアドレス値を1バイト分アドレス補正す
る(ステップ407)。そして、次のリロケーション情
報の有無を判別するステップ401に戻り処理を繰り返
す。
【0035】ステップ401において、リロケーション
情報301がなくなった場合、C1セグメント内の全て
のリロケーション情報301のコード変化量が0または
アドレス補正がなくなったかの最適化処理の終了の判断
を行い(ステップ408)、C1セグメントの最適化処
理を終了したと判断した場合、セグメント補正を行う
(ステップ409)。すなわち、セグメント補正では、
たとえばBR L2およびBR L3が、3バイト分岐
命令に変化したので、セグメントサイズを2バイト分補
正する。
【0036】そして、配置部108に戻り、C1セグメ
ントを含むC2、C3セグメントをアドレス空間に再配
置し、シンボル解決部109が配置により決定したアド
レスをラベルのアドレス値に反映する処理を行い、次の
セグメントであるC2セグメントの最適化処理を行う。
【0037】このように本実施例では、最適化処理部1
03においてコード長の変化を考慮し分岐命令を決定
し、その都度再配置を繰り返すことにより、モジュール
間分岐命令の最適化が可能となる。
【0038】以上好ましい実施例をあげて本発明を説明
したが、本発明は必ずしも上記実施例に限定されるもの
ではない。
【0039】
【発明の効果】以上説明したように、本発明によれば、
プログラム内の全てのモジュール間の分岐命令を最適な
コード長とすることができるができる。特に、セグメン
トの配置順が昇順でない或いは分岐命令と分岐命令の参
照するラベルとの間に分岐命令を多く存在した場合で
も、最適なコード長の分岐命令とすることができる。
【図面の簡単な説明】
【図1】 本発明を適用した一実施例に係るリンカの構
成を示すブロック図である。
【図2】 本発明の一実施例に係るリロケーション情報
の構成を示す図である。
【図3】 本発明の一実施例に係る最適化処理部の処理
手順を示す流れ図である。
【図4】 本発明の一実施例に係る最適化処理部の一例
を説明する説明図である。
【図5】 本発明の一実施例に係るリロケーション情報
の一例を示す説明図である。
【図6】 従来のリンカの構成を示すブロック図であ
る。
【図7】 ユーザプログラムの一例を示す説明図であ
る。
【図8】 従来のテーブルの構成を示す図である。
【符号の説明】
102 再配置処理部 103 最適化決定部 104 命令決定部 108 配置部 109 シンボル解決部 110 分岐命令判断部 111 コード変化量算出部 112 距離算出部 113 分岐命令決定部 114 アドレス補正部 115 セグメント補正部 116 コード修正部

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 情報処理装置用の連結編集プログラム内
    で、セグメントの集合であるモジュール間の分岐を行う
    分岐命令を処理する方式において、 前記分岐命令と分岐命令が参照するラベルとの間のアド
    レスに位置する分岐命令のコード長の変化量を算出する
    ステップと、 前記コード長の変化量に従ってセグメントの再配置をセ
    グメント毎にその都度繰り返し行うステップとを有する
    ことを特徴とする分岐命令処理方式。
  2. 【請求項2】 コード長の変化量に従ったセグメントの
    再配置を、セグメントの配置優先順位に従い行うことを
    特徴とする請求項1に記載の分岐命令処理方式。
  3. 【請求項3】 コード長の変化量に従って、ラベルのア
    ドレスを補正するアドレス補正とセグメントサイズを補
    正するセグメント補正を行うことで、セグメントの再配
    置を行うことを特徴とする請求項1または2に記載の分
    岐命令処理方式。
  4. 【請求項4】 情報処理装置用の連結編集プログラム内
    で、セグメントの集合であるモジュール間の分岐を行う
    分岐命令を処理する方式において、 命令コードの修正情報を含むリロケーション情報から分
    岐命令を判別する分岐命令判別手段と、 前記分岐命令と分岐命令が参照するラベルとの間のアド
    レスに位置する分岐命令のコード長の変化量を算出する
    コード変化量算出手段と、 前記コード長の変化量に従ってセグメントの再配置をセ
    グメント毎にその都度繰り返し行う再配置手段を備える
    ことを特徴とする分岐命令処理方式。
  5. 【請求項5】 前記再配置手段は、コード長の変化量に
    従ったセグメントの再配置を、セグメントの配置優先順
    位に従い行うことを特徴とする請求項4に記載の分岐命
    令処理方式。
  6. 【請求項6】 前記再配置手段は、コード長の変化量に
    従って、ラベルのアドレスを補正するアドレス補正とセ
    グメントサイズを補正するセグメント補正を行うこと
    で、セグメントの再配置を行うことを特徴とする請求項
    4または5に記載の分岐命令処理方式。
JP7072345A 1995-03-05 1995-03-05 分岐命令処理方法及び装置 Expired - Lifetime JP3047771B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7072345A JP3047771B2 (ja) 1995-03-05 1995-03-05 分岐命令処理方法及び装置
US08/611,493 US5740447A (en) 1995-03-05 1996-03-05 Branch instruction optimizing process system in linkage editor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7072345A JP3047771B2 (ja) 1995-03-05 1995-03-05 分岐命令処理方法及び装置

Publications (2)

Publication Number Publication Date
JPH08241196A true JPH08241196A (ja) 1996-09-17
JP3047771B2 JP3047771B2 (ja) 2000-06-05

Family

ID=13486633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7072345A Expired - Lifetime JP3047771B2 (ja) 1995-03-05 1995-03-05 分岐命令処理方法及び装置

Country Status (2)

Country Link
US (1) US5740447A (ja)
JP (1) JP3047771B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553476B1 (en) * 1997-02-10 2003-04-22 Matsushita Electric Industrial Co., Ltd. Storage management based on predicted I/O execution times
EP0953898A3 (en) * 1998-04-28 2003-03-26 Matsushita Electric Industrial Co., Ltd. A processor for executing Instructions from memory according to a program counter, and a compiler, an assembler, a linker and a debugger for such a processor
US6928641B1 (en) * 1999-10-08 2005-08-09 Texas Instruments Incorporated Method and system for far branch and call instructions
JP2002055829A (ja) * 2000-08-07 2002-02-20 Matsushita Electric Ind Co Ltd 中間オブジェクト連結方法、及び、中間オブジェクト連結装置、及び、リンカ装置、及び、コンパイラドライバ装置、並びに、中間オブジェクトを連結するプログラムを記録した記憶媒体
US6851110B2 (en) * 2001-06-07 2005-02-01 Hewlett-Packard Development Company, L.P. Optimizing an executable computer program having address-bridging code segments
US20040167786A1 (en) * 2002-03-08 2004-08-26 Grace John J. System for optimizing selection of a college or a university and a method for utilizing the system provided by a program
US7024663B2 (en) * 2002-07-10 2006-04-04 Micron Technology, Inc. Method and system for generating object code to facilitate predictive memory retrieval
US8370823B2 (en) * 2007-08-27 2013-02-05 International Business Machines Corporation Device, system, and method of computer program optimization
JP5987501B2 (ja) * 2012-06-29 2016-09-07 富士通株式会社 分岐アドレス管理プログラム、方法、及び装置
US9298436B2 (en) 2014-06-25 2016-03-29 International Business Machines Corporation Conditional branch instruction compaction for regional code size reduction

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62205431A (ja) * 1986-03-05 1987-09-10 Nec Corp 分岐命令処理方式
JPH0322031A (ja) * 1989-06-19 1991-01-30 Nec Corp 分岐命令の最適化処理方式
JPH04330526A (ja) * 1991-01-31 1992-11-18 Nec Ic Microcomput Syst Ltd リローケタブル・アセンブラ
JPH0512032A (ja) * 1991-07-04 1993-01-22 Nec Ic Microcomput Syst Ltd アセンブラ作成装置
JPH05257703A (ja) * 1991-11-07 1993-10-08 Nec Ic Microcomput Syst Ltd アセンブラ装置
JPH0651933A (ja) * 1992-07-31 1994-02-25 Fujitsu Ltd マルチウインドウ制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4567574A (en) * 1983-03-14 1986-01-28 International Business Machines Corporation Optimizing cobol object code instruction path length with respect to perform statements
US4763255A (en) * 1984-10-31 1988-08-09 International Business Machines Corporation Method for generating short form instructions in an optimizing compiler
JPH0651993A (ja) * 1992-06-05 1994-02-25 Nec Corp アセンブル装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62205431A (ja) * 1986-03-05 1987-09-10 Nec Corp 分岐命令処理方式
JPH0322031A (ja) * 1989-06-19 1991-01-30 Nec Corp 分岐命令の最適化処理方式
JPH04330526A (ja) * 1991-01-31 1992-11-18 Nec Ic Microcomput Syst Ltd リローケタブル・アセンブラ
JPH0512032A (ja) * 1991-07-04 1993-01-22 Nec Ic Microcomput Syst Ltd アセンブラ作成装置
JPH05257703A (ja) * 1991-11-07 1993-10-08 Nec Ic Microcomput Syst Ltd アセンブラ装置
JPH0651933A (ja) * 1992-07-31 1994-02-25 Fujitsu Ltd マルチウインドウ制御方法

Also Published As

Publication number Publication date
JP3047771B2 (ja) 2000-06-05
US5740447A (en) 1998-04-14

Similar Documents

Publication Publication Date Title
JP2838855B2 (ja) コンパイラの最適化方法
JPH1173325A (ja) プログラム変換装置及び記録媒体
JPH08241196A (ja) 分岐命令処理方式
US6175935B1 (en) Software debugging method and recording medium to which debugging program has been recorded
US6928643B2 (en) Bi-endian libraries
JPH01118931A (ja) プログラム変換方式
JPH08227363A (ja) 分岐命令処理方法
US7127711B2 (en) Forming an executable program
JP3267550B2 (ja) デグレードチェック装置
US8312432B2 (en) Method of adjusting timing difference between pre-corrected source program and post-corrected source program, compiler and information processor
JPS62205431A (ja) 分岐命令処理方式
JP6944838B6 (ja) 変換装置および変換方法
CN115373689A (zh) 基于llvm的编译优化方法、装置、设备及介质
JP3278613B2 (ja) 言語処理システム及びその言語処理方法
JP2956591B2 (ja) ループ外への条件付き飛び出しがあるループの並列化方法及び装置
JP2000155673A (ja) リンク装置及びリンク方法
JPH0651993A (ja) アセンブル装置
JPH096606A (ja) リエンジニアリング検証方式
JP3573668B2 (ja) 分岐命令の最適化方法およびそのプログラムを記録した記録媒体
JPH04312122A (ja) プログラム作成装置
JPH08234998A (ja) アセンブラの処理方法
JP2570998B2 (ja) 分岐命令処理装置および分岐命令処理方法
JPH01161534A (ja) アセンブラ方式
JPH08194624A (ja) 実行形式プログラム作成方法
JPH07129408A (ja) 言語処理プログラムの実行方式