• 検索結果がありません。

Op enJIT ネイティブコード変換機能

ドキュメント内 fmaster.dvi (ページ 85-91)

第 5 章 機能仕様

7.3 Op enJIT ネイティブコード変換機能

(1)

機能説明

Javaのバイトコードからネィティブコードを出力するための抽象フレームワークで ある.実際は,このクラスを具体的なプロセッサに応じたクラスで特化することに よって,実際のコード出力機能を定義する.それぞれのバイトコードと,プログラム の各種グラフ,およびフロントエンドシステムのプログラム解析・変換の結果を用い て,ネィティブコードへの変換を行なう.

(2)

機能構成及び他の機能ブロックとの関係

OpenJITネイティブコード変換機能の構成と他の機能ブロックとの関係を図7.2

示す.

(3)

入力データ

フロントエンド変換後のバイトコード

(4)

出力データ

SPARCプロセッサのネイティブコード

(5)

例外条件及び制約条件

特になし.

バイトコード

ネイティブコード変換 O p e n J I T R T L

変換機能 O p e n J I T Peephole 最適化機能 OpenJIT 中間 コード変換機能

バイトコード アクセス 生成コード メモリ管理 SPARC

ネイティブコード

メソッド情報

7.2: OpenJIT ネイティブコード変換機能

7.3.1

ネイティブコード変換

(1) 機能説明

バイトコードを入力とし,SPARCネイティブコードを出力する

OpenJIT中間コード変換機能,OpenJIT RTL変換機能,OpenJIT Peephole最適化 機能を制御する.

(2) 機能構成及び他の機能ブロックとの関係

本小機能の他の機能ブロックとの関係は図7.2に示す通りである.

(3) 入力データ バイトコード

(4) 出力データ

SPARCネイティブコード

(5) 例外条件及び制約条件 特になし.

(6) 特記事項(性能,容量)

特になし.

7.3.2

メソッド情報

(1) 機能説明

メソッドに関するJDKの内部構造をJavaのデータ構造に変換する.

constant poolのインデックス値をもとに,constant poolに関する,定数値や定数の 格納アドレス,型の情報,クラス名,メソッド名,フィールド名を取り出す.

(2) 機能構成及び他の機能ブロックとの関係

本小機能の他の機能ブロックとの関係は図7.2に示す通りである.

(3) 入力データ 特になし.

(4) 出力データ 特になし.

(5) 例外条件及び制約条件 特になし.

(6) 特記事項(性能,容量)

特になし.

7.3.3

バイトコードアクセス

(1) 機能説明

JDKの内部構造であるバイトコードを読み取る.

バイトコード列から,符号なし1バイトデータ,符号無し2バイトデータ,符号付き 1バイトデータ,符号付き2バイトデータ,符号付き4バイトデータを読み出す.

(2) 機能構成及び他の機能ブロックとの関係

本小機能の他の機能ブロックとの関係は図7.2に示す通りである.

(3) 入力データ 特になし.

(4) 出力データ 特になし.

(5) 例外条件及び制約条件 特になし.

(6) 特記事項(性能,容量)

特になし.

7.3.4

生成コードメモリ管理

(1) 機能説明

生成するネイティブコードの領域の確保,生成したネイティブコードの領域の再割 り当てを行い,その領域への生成したネイティブコードの書き込み,読み出しを行 う.

(2) 機能構成及び他の機能ブロックとの関係

本小機能の他の機能ブロックとの関係は図7.2に示す通りである.

(3) 入力データ 特になし.

(4) 出力データ 特になし.

(5) 例外条件及び制約条件 特になし.

(6) 特記事項(性能,容量)

特になし.

ドキュメント内 fmaster.dvi (ページ 85-91)

関連したドキュメント