Pat
J-GLOBAL ID:200903020785170519

プログラム翻訳装置、プログラム翻訳方法及びプロセッサ

Inventor:
Applicant, Patent owner:
Agent (1): 中島 司朗
Gazette classification:公開公報
Application number (International application number):1995244756
Publication number (International publication number):1997091150
Application date: Sep. 22, 1995
Publication date: Apr. 04, 1997
Summary:
【要約】【目的】 スタックポインタの更新回数が少なくなるように機械語プログラムを生成するプログラム翻訳装置、プログラム翻訳方法と、スタックポインタの更新回数が少なくなるように、サブルーチン呼び出しを行うプロセッサとを提供する。【構成】 サブルーチン呼出命令『jsr #size,_f』では、スタックポインタspを#size減少して、次の命令のアドレス(戻り先)を@spに転送し、サブルーチン_fに制御を移す。復帰命令『rts #size』では、スタックポインタspを#size加算して、次の命令のアドレス(戻り先)をプログラムカウンタに転送する。この#sizeが示されている第1オペランドは、リンカによって呼び出し先のサブルーチン内で費やされるスタックサイズが書き込まれるので、サブルーチン内の入り口処理におけるスタックポインタの加減算をサブルーチン呼び出し時やサブルーチンからの復帰時に行うことができる。
Claim (excerpt):
原始言語あるいは中間言語で記述されたサブルーチンを機械語命令のサブルーチンである機械語サブルーチンへと翻訳するコンパイラと、翻訳された複数の機械語サブルーチンを連結してターゲットマシンのプロセッサが解読可能な機械語プログラムを生成するリンカとからなるプログラム翻訳装置であって、前記コンパイラは、原始言語あるいは中間言語で記述されたサブルーチンが含む各演算を、サブルーチン毎に機械語命令列に翻訳する機械語命令翻訳手段と、翻訳された機械語命令列の前に、翻訳された機械語命令列で使用されているレジスタの保持値をスタック領域に退避させる退避命令を生成し、翻訳された機械語命令列の後に、退避された保持値をレジスタへ復元させる復元命令を生成する退避-復元命令生成手段と、翻訳及び生成された機械語命令列の実行に要するスタックサイズを計数する計数手段と、スタック領域を確保するための順方向に当該計数値だけスタックポインタを更新させる機械語命令を当該退避命令の前に生成し、スタック領域を確保するための方向の逆方向に当該計数値だけスタックポインタを更新させる機械語命令を当該復元命令の後に生成する更新命令生成手段とを備え、前記機械語命令翻訳手段は、第1、第2オペランドを有する機械語命令であって、スタックポインタが指示するスタック領域へサブルーチンの戻り先アドレスを転送させる処理と、第1オペランドに示された値だけスタックポインタを順方向に更新させる処理と、第2オペランドに示された値をプログラムカウンタに転送させる処理とを含む機械語命令であるサブルーチン呼出命令を生成するサブルーチン呼出命令生成手段と、第1オペランドを有する機械語命令であって、第1オペランドに示された値だけスタックポインタを逆方向に更新させる処理と、戻り先のアドレスをスタックポインタが指示するスタック領域からプログラムカウンタへと転送させる処理とを含む機械語命令である復帰命令を生成する復帰命令生成手段とを有し、前記リンカは、サブルーチン呼出命令の第1オペランドに、戻り先のアドレスのサイズと呼び出し先のサブルーチンのスタックサイズとの合算値を書き込む第1書込手段と、サブルーチン呼出命令の第2オペランドに、呼び出し先のサブルーチンの先頭アドレスを書き込む第2書込手段と、復帰命令の第1オペランドに、戻り先のアドレスのサイズと呼び出し先のサブルーチンのスタックサイズとの合算値を書き込む第3書込手段と、第1、第2、第3書込手段による書き込みが行われると、更新命令生成手段によって生成された機械語命令を削除する削除手段とを備えることを特徴とするプログラム翻訳装置。
IPC (2):
G06F 9/45 ,  G06F 9/42 330
FI (2):
G06F 9/44 322 F ,  G06F 9/42 330 A
Patent cited by the Patent:
Cited by examiner (9)
  • 機械語翻訳最適化方式
    Gazette classification:公開公報   Application number:特願平3-027094   Applicant:沖電気工業株式会社
  • 特開昭62-205431
  • 特開平2-257224
Show all

Return to Previous Page