jp.hishidama.jas
クラス BytecodeStatement

java.lang.Object
  上位を拡張 jp.hishidama.jas.BytecodeStatement

public class BytecodeStatement
extends Object

バイトコード命令.

バイトコードの一命令を表すクラス。
Javassistを利用している。

導入されたバージョン:
2007.11.17
バージョン:
2007.11.21
作成者:
ひしだま

コンストラクタの概要
BytecodeStatement(MethodInfo minfo, CodeIterator iterator, int pos)
          コンストラクター.
 
メソッドの概要
 String dump()
          ダンプ用文字列取得.
 int getEndPos()
          範囲の終了位置取得.
 int getFirstPos()
          範囲の開始位置取得.
 int getOpcode()
          オペレーションコード取得.
 int getOperand16()
          オペランド(16bit)取得.
 int getPos()
          位置取得.
 String getReturnType()
          戻り型取得.
 int getStackPos()
          スタック位置取得.
 void setRangePos(int begin, int end)
          範囲設定.
 void setStackPos(int stack_pos)
          スタック位置設定.
 int stackDataSize()
          スタック使用サイズ取得.
 int stackGrowSize()
          スタック増加サイズ取得.
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

BytecodeStatement

public BytecodeStatement(MethodInfo minfo,
                         CodeIterator iterator,
                         int pos)
コンストラクター.

パラメータ:
minfo - メソッド
iterator - コードイテレーター
pos - バイト配列上の位置
メソッドの詳細

getPos

public int getPos()
位置取得.

戻り値:
バイト配列上の位置

getOpcode

public int getOpcode()
オペレーションコード取得.

戻り値:
オペレーションコード

getOperand16

public int getOperand16()
オペランド(16bit)取得.

命令の引数を返す。

戻り値:
オペランド

dump

public String dump()
ダンプ用文字列取得.

ニーモニックの形に変換する。デバッグ目的。
現状では一部の命令しか対応してない…。

戻り値:
ニーモニック

setStackPos

public void setStackPos(int stack_pos)
スタック位置設定.

パラメータ:
stack_pos - スタック位置

getStackPos

public int getStackPos()
スタック位置取得.

戻り値:
スタック位置

stackGrowSize

public int stackGrowSize()
スタック増加サイズ取得.

命令実行後に増加するスタックの大きさを返す。
減少する場合は負の値を返す。

戻り値:
スタックサイズ

stackDataSize

public int stackDataSize()
スタック使用サイズ取得.

命令が使用するスタックの大きさを返す。
現状ではメソッドにしか対応していない。

例えば「static int test(int,int,int)」を呼び出す場合、
引数がint3つなので使用するスタックは3。当メソッドは3を返す。
stackGrowSize()だと戻り値を格納する分が引かれ、2を返す。

戻り値:
スタックサイズ

getReturnType

public String getReturnType()
戻り型取得.

命令がメソッドのときだけしか使用不可。

戻り値:
メソッドの戻り値の型

setRangePos

public void setRangePos(int begin,
                        int end)
範囲設定.

パラメータ:
begin - 開始位置
end - 終了位置

getFirstPos

public int getFirstPos()
範囲の開始位置取得.

戻り値:
開始位置

getEndPos

public int getEndPos()
範囲の終了位置取得.

戻り値:
終了位置